6

我在正文中有以下 HTML 代码:

<div id="hidden">

</div>

<div id="mainContianer">
    <div id="firstChildDiv">

    </div>
</div>

我正在使用以下代码来获取孩子

$("div:first-child").attr('id') 

但是,当我希望它返回 firstChildDiv 时,它会返回“隐藏”,我尝试过类似...

$("div[mainContainer ] div:first-child").attr('id') 
$("div[id=mainContainer ] :first-child").attr('id') 
$("#mainContainer :first-child").attr('id') 

我知道这是一件简单的事情,但似乎看不出我哪里出错了......

谢谢

4

9 回答 9

12

你的最后一个选择器

$("#mainContainer :first-child").attr('id') 

如果您更正 HTML 中的错字(请参阅此小提琴),则可以正常工作。它说mainContianer而不是mainContainer

id但是,无论如何,如果该元素具有,为什么不简单地通过 选择id

$( '#firstChildDiv' )
于 2012-07-13T09:57:38.843 回答
6
$('#mainContainer > div:first-child').attr('id');
于 2012-07-13T09:54:59.853 回答
2

试试这个,

$("#mainContianer:first-child").attr("id")

检查':'之前没有空格

于 2012-07-13T09:56:14.597 回答
2

实际上,您的 html 中有错字

<div id="mainContianer">

应该

<div id="mainContainer">

然后你可以做

$("#mainContainer div:first-child").prop('id')

这使用prop而不是attr,这是较慢和旧的 jQuery 语法

于 2012-07-13T09:59:20.073 回答
1

这一切都返回你父母的第一个孩子——在你的情况下,用 mainContianer 替换父母

$('#parent').children(":first") 


$('#parent').children(":first-child") 


$( $('#parent').children()[0] ) 


$('#parent').find(":first") 


$('#parent').find(":nth-child(1)") 

尝试 -子选择器(“父>子”)

$("div > div").attr('id')  

也试试

$("div div:first-child")
于 2012-07-13T09:55:10.710 回答
1

这对我有用....

$(document).ready(function(){
    var a =$("#mainContainer div:first-child").attr('id');
    alert(a);
});
于 2012-07-13T09:57:31.140 回答
1
    <html>
        <head>
            <script>
                function getDiv(){
                alert("answer = "+$('#mainContianer div:first-child').attr('id'));

                }
            </script>
        </head>
        <body>

            <div id="hidden"></div>

                 <div id="mainContianer">
                    <div id="firstChildDiv">
                    </div>
                 </div>

                <button onclick="getDiv()">click</button>
    </body>
<html>
于 2012-07-13T09:58:18.293 回答
0

脚本

<script language="JavaScript">
    jQuery(document).ready(function($) { 
    $("#MY_BUTTON").click(function(event) {
                 $("div#PARENT_DIV").find("#CHILD_DIV").hide();
             });    
});
</script>

代码

<div id="PARENT_DIV">
        <h1 class="Heading">MY HTML PAGE TEST</h1>
        <br />
        <div id="CHILD_DIV">THIS IS MY CHILD DIV</div>
 </div>

    <div class="MY_BUTTONS"> 
        <a class="MySubmitButton" id="MY_BUTTON">
            <span>Test it!</span>
        </a>
     </div>
于 2013-05-16T09:37:36.240 回答
0

现在在 2020 年使用 jquery 可以是这样的:

    function myClickOnDiv(divPrm) {
        let div=$(divPrm);
        let targetElement=div.find('#my_id')
    }

如果说你的 div 看起来像这样:

<div onclick=myClickOnDiv(this)><label id="my_id"></label></div>
于 2020-09-11T18:20:43.360 回答