如何使用jQuery从父元素获取特定子div的值

3

我知道这个问题在stackoverflow上很常见,但是我仍然找不到解决方案。我想在点击父div时获取我的子div的值,但是我的当前代码给了我“undefined”。我的html如下所示:

<div class="main">
  <div class="testId">
    1
  </div>
  <div class="testName">
    test
  </div>
  <div class="testDob">
    10/10/10
  </div>

</div> 

以下是我的脚本:
var id = $(this).child(".testId").innerHTML;

有什么想法吗?

尝试使用 var id = $(this).children(".testId")[0].innerHTML; - Arun P Johny
为什么要使用innerHTML,而不是使用.html()或.text()? - Sterling Archer
一个可能的原因是,如果您点击父元素的子元素,则它将不起作用... 因此请尝试 $(this).closest('.main').children(".testId").html() - Arun P Johny
5个回答

6

尝试使用find()方法:

var id = $(this).find(".testId").text();

3
"

"find" 查找 div.main 内的直接子元素。

"
var id = $(this).find(".testId").html();
console.log(id);

2
使用.children()而不是选择器.child()
var id = $(this).children(".testId")[0].innerHTML;

或者

var id = $(this).children(".testId").text();

或者

var id = $(this).children(".testId").eq(0).text();

1
我认为这个应该可以工作。
$('.main').click(function(){
    var value = $(this).child(".testId").text();
})    

1
这是一个工作示例。
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
    <div class="main">
               <div class="testId">
               1
               </div>
               <div class="testName">
               test
               </div>
               <div class="testDob">
               10/10/10
               </div>

            </div> 

    <script>
        $(".main").click(function () {
            var id = $(this).children(".testId").html();
            alert(id)
        })
    </script>
</body>
</html>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接