JQuery:如何选择textarea的内容为html string&从中提取文字?

时间:2013-11-01 17:38:46

标签: javascript jquery

(Failling JSfiddle在底部)

鉴于JS 这样:

// Fill the textarea for testing!
$("#input").val("hello <b>2</b> and <b>3</b>");
// Get the textarea, convert to html string, find b elements, get text content:
$("#input").keyup(function () {
    $('#output').html($("#input").val()).find("b").text();
}).keyup();

给出HTML:

<!-- INPUT: -->
<fieldset>
    <textarea id="input"></textarea>
</fieldset>

<!-- OUTPUT: -->
<b>List of text in b balises is:</b>
<div id="output">
    Here should be the list of n strings in b n balises (aka: ["2", "3"])
</div>

如何获取b元素中的n个字符串列表?

目前无效,请参阅JSfiddle。回答JSfiddle感谢。

3 个答案:

答案 0 :(得分:1)

您可以获取文本,将其作为HTML放入隐藏元素中,然后将其转换为DOM对象,然后您可以导航到元素并提取内容。

答案 1 :(得分:1)

// Fill the textarea for testing!
$("#input").val("hello <b>2</b> and <b>3</b>");

// Get the textarea, convert to html string, find b elements, get text content:
$("#input").keyup(function () {
    var $el = $('<div>'+$("#input").val()+'</div>');
    var result = '';
    $.each($el.find('b'),function(){
        result += $(this).text()+' ';
    });

    $('#output').html(result);
}).keyup();

答案 2 :(得分:0)

答案:

// Fill the textarea for testing!
$("#input").val("hello <b>2</b> and <b>3</b>");

// Get the textarea, convert to html string, find b elements, get text content:
$("#input").keyup(function () {
    $('#output').html($('#input').val());
    var list = $('#output').find("b");
    $('#output').html(""); //clean up
    list.each(function( i ) {
        $("#output").append(  "Element "+i+":" + $( this ).text() +"<br />");
    });
}).keyup();

小提琴:http://jsfiddle.net/6hCwZ/18/