0

我如何捕获 id 标签并写入 p。我想在 textarea 输入中列出 id 名称。

谢谢。

HTML

<textarea id="textid" class="textclass">
    <div id="hello"><span id="world"></span></div>
</textarea>
  <p></p>

JS

$("textarea").keyup(function () {
      var value = $(this).val();
      $("p").text(value);
 }).keyup();

示例 http://jsfiddle.net/6YRyP/2/

4

3 回答 3

2

如果您不想将 textarea 中的文本解析为 HTML(正如@roasted 建议的那样),您可以尝试使用正则表达式:

$("textarea").keyup(function () {
     var value = $(this).val();
     val = '';

     matches = value.match(/id="[^"]*/g);

     for (i in matches) {
         val += matches[i].substr(4) + ' ';
     }

     $("p").text(val);
}).keyup();
于 2013-07-31T11:32:35.743 回答
2

演示

$("textarea").keyup(function () {
    var $content = $($('<div/>').html($.trim(this.value))),
        ids = "";
    $content.find('[id]').each(function(){
        ids += " "+ this.id;
    });

    $("p").text(ids.substring(0));
}).keyup();
于 2013-07-31T11:20:07.687 回答
0

这是一种方法:http: //jsfiddle.net/6YRyP/7/

$("textarea").keyup(function () {
    var value = $(this).val();
    $('body').append('<div id="search">'+value+'</div>');
    var listOfId = "";
    $('*', $('#search')).each(function() {
        var currentId = $(this).attr('id');
        if (currentId != "") {
           listOfId = listOfId + currentId + ' ';
        }
    });
    $('#search').remove();
    $("p").text(listOfId);
}).keyup();
于 2013-07-31T11:31:51.877 回答