jQuery在子div中获取值

我需要抓住一个子div的文本值。

A
B
C

我试图抓住价值B.我正在尝试这个,但它不起作用,

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

您想使用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 

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

你可以简单地说:

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

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

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

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

试试这个…

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

简单,

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

或者你的改变,

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

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

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

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

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

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

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

……..

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

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

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

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