如何从textarea获取包含div的值

时间:2012-05-27 08:01:19

标签: javascript jquery html

我有一个包含一些HTML的textarea(不要问我原因!:))

HTML看起来像:

<div class="text-tag">some gibberish 1</div> 
<div class="text-tag">some gibberish 2</div> 
<div class="text-tag">some gibberish 3</div>

我如何从中获取价值:一些乱码1,一些乱码2和一些乱码3?

修改

我的HTML看起来像这样:

<textarea>
    <div class="text-tag">some gibberish 1</div> <div class="text-tag">some gibberish 2</div>  <div class="text-tag">some gibberish 3</div>
</textarea>

这个html是由用户输入的,我需要解析用户在textarea中键入的HTML。

2 个答案:

答案 0 :(得分:8)

var alltext = [];

$('div.text-tag').each(function() {
  alltext.push($(this).text());
});

console.log(alltext.join(', ')); // output: some gibberish 1, some gibberish 2, some gibberish 3

​var alltext = $('div.text-tag').text();
console.log(alltext); // output: some gibberish 1some gibberish 2some gibberish 3

var alltext = [];
$('div.text-tag').text(function(index, text) {
   alltext.push(text);
});
console.log(alltext.join(', '))​​; // output: some gibberish 1, some gibberish 2, some gibberish 3

根据你的编辑:

var content = $($.trim($('textarea').val())),
    alltext = [];
$(content).each(function() {
  if(this.nodeType != 3)
      alltext.push($(this).text());
});
console.log(alltext.join(', '));

Sample workout 1

另一个样本:

var textarea = $("textarea").val(),
    alltext = [];
$(textarea).filter(function(index, item) {
   if($(item).hasClass('text-tag'))
       alltext.push($(item).text());
})
console.log(alltext.join(', '));

<强> Sample workout 2

答案 1 :(得分:0)

我不知道什么是更好的,但我会使用以下代码完成您的任务:

var values = [];
$(​$(​"textarea").val()​​​​​​).filter(".text-tag").each(function() {
    values.push(this.innerHTML);
});​​​​​​​
console.log(values);

DEMO: http://jsfiddle.net/XWp4b/