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项的值。