jQuery显示嵌套在div内的段落中的文本

时间:2012-12-12 10:56:46

标签: jquery html text html-parsing

我的HTML看起来像这样:

<div class='textbox' data-title='Sometitle'>
<div class='textareaedit'>
     <p><strong>Test sample text</strong></p>
</div>
</div>

我有时会在<p> div中包含一些不同的textareaedit标记,有时会在strong内的文本周围添加<p>个标记(如此示例),有时候是span标记,有时它会在<p>内没有其他标记。

我想遍历我页面上的每个textbox,抓取其标题以及嵌套在<p>中的textareaedit标记内的文字。我通过控制台提供输出以进行测试。 这是我的jQuery代码,但是第二行console.log()行没有输出:

$('.textbox').each(function() {
    $this = $(this);
    console.log($this.attr('data-title')+ ":\n");
    $this.children('textareadit').children('p').each(function(){
        console.log($(this).html()); // not giving any output, it's blank
    });
});

我也试过$(this).text(),但没有区别。您可能认为此示例在<strong>内的<p>标记内包含示例文本,但我也尝试过没有强项的相同示例,其中文本是<p>的直接子项,但它没有什么区别。我如何捕获文本?

5 个答案:

答案 0 :(得分:2)

传递给children()函数的类选择器在类名之前缺少.。课程名称中也存在拼写错误,textareadit应为textareaedit

$this.children('.textareaedit').children('p').each(function(){
    console.log($(this).html()); // not giving any output, it's blank
});

示例:http://jsfiddle.net/aWRaS/

答案 1 :(得分:1)

您可以使用find()方法找到它。尝试这样的事情:

$this.find('.textareadit > p').each(function(){
    console.log($(this).html());
});

答案 2 :(得分:1)

.children('textareadit')

应为:

.children('.textareadit')

当你选择一个班级时

答案 3 :(得分:1)

班级名称拼写错误

.children('textareadit') should be .children('.textareaedit')

答案 4 :(得分:1)

您的选择器中缺少.,而textareadit中存在拼写错误。正确的应该是 -

$this.children('.textareaedit').children('p').each(function(){
    console.log($(this).html()); // now it prints
});

您将class selector作为参数传递给第一个children调用,因此您应该在其前面加上.,因为这是类选择器的工作方式。

JSFiddle

相关问题