jQuery在子div中获取值

med*_*ium 19 jquery

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

<div id='first'>
    <div id='first_child'>A</div>
    <div id='second_child'>B</div>
    <div id='third_child'>C</div>
</div>
Run Code Online (Sandbox Code Playgroud)

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

var text_val = $('#first').next('#second_child').val();
Run Code Online (Sandbox Code Playgroud)

tva*_*son 32

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

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

var text_val = $('#second_child').text(); //preferred
Run Code Online (Sandbox Code Playgroud)

要么

var text_val = $('#first').children('#second_child').text(); // yours, corrected 
Run Code Online (Sandbox Code Playgroud)


Joh*_*her 7

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

var text_val = $('#first').find('#second_child').html();
Run Code Online (Sandbox Code Playgroud)

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

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

var text_val = $('#second_child').text();
Run Code Online (Sandbox Code Playgroud)


wid*_*ara 5

你可以简单地说:

var text_val = $('#second_child').text();
Run Code Online (Sandbox Code Playgroud)

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

var text_val = $('#first').children().eq(1).text();
Run Code Online (Sandbox Code Playgroud)

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