我怎样才能在textarea中列出html名称

时间:2013-07-31 11:18:10

标签: jquery html

我如何捕获id标签并写入p。我想在id到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/

3 个答案:

答案 0 :(得分:2)

DEMO

$("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();

答案 1 :(得分: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();

答案 2 :(得分: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();