jQuery在子div中获取值

时间:2010-02-22 17:48:37

标签: jquery

我需要获取子div的文本值。

<div id='first'>
    <div id='first_child'>A</div>
    <div id='second_child'>B</div>
    <div id='third_child'>C</div>
</div>

我正试图抓住价值B.我正在尝试这个,但它无法正常工作,

var text_val = $('#first').next('#second_child').val();

8 个答案:

答案 0 :(得分:31)

您想使用children()text()代替val()。虽然,因为你选择的是id(并且id必须是唯一的),你也可以根据id选择而不涉及容器元素。

val()方法仅适用于输入元素,textareas和choose - 基本上所有包含数据的表单元素。要获取容器的文本内容,您需要使用text()(或html(),如果您还想要标记的话。)

var text_val = $('#second_child').text(); //preferred

var text_val = $('#first').children('#second_child').text(); // yours, corrected 

答案 1 :(得分:7)

next()和nextAll()遍历元素的兄弟,而不是子元素。相反,使用“find()”

var text_val = $('#first').find('#second_child').html();

在处理输入和textareas等元素时使用val()。 html()将返回div下的任何内容(在您的示例中有效)。 text()将返回元素中的文本(在您的示例中也可以使用)。

你的例子也让我怀疑你的设计。如果您将多个ID设置为“#second_child”,则您的html会感到困惑。相反,使用一个类。但是,如果只有一个id“#second_child”,那么您只需要:

var text_val = $('#second_child').text();

答案 2 :(得分:5)

你可以简单地说:

var text_val = $('#second_child').text();

如先前的答案所指出的那样。但是,既然你“需要获取子div的文本值”,我认为子div可能并不总是可用。你可以试试这个:

var text_val = $('#first').children().eq(1).text();

其中1是子div的索引(因为它从零开始计数)

答案 3 :(得分:4)

试试这个......

var text_val = $('#first > #second_child').text();

答案 4 :(得分:4)

简单,

var text_val = $('#second_child').text();

或者你的改变,

var text_val = $('#first').children('#second_child').text();

这将从id“second_child”的div中返回“B”

更新将第二个解决方案更改为children()而不是nextAll()

答案 5 :(得分:1)

对于具有相同ID的多个元素:

var text_val = $('#first').children('#second_child').text();

对于具有特定ID的单个元素:

var text_val = $('#second_child').text();

答案 6 :(得分:0)

........

var text_val = $('#first').children('#second_child').text();

答案 7 :(得分:0)

如果您需要进入列表,请使用:

jQuery('.first > ul > li:nth-child(6)').text();

示例代码获取列表中第6项的值。