如何使用.find()来判断某个元素是否有子节点?

时间:2013-12-07 04:40:56

标签: javascript jquery html

例如我有一个div <div id="myrules"></div>

如果我使用

alert($("#myrules").find("if"))

它提醒[object object],即使div为空,所以问题是如何使用.find()来判断孩子是否存在?

http://jsfiddle.net/prollygeek/agG3d/

5 个答案:

答案 0 :(得分:4)

您可以使用$('#myrules').find('if').length

答案 1 :(得分:2)

jQuery返回一组匹配的元素,如果没有选择元素,则此set为空, 所以你需要检查返回值的长度属性。

// "length" of the returned collection is 0
if(jQuery('#myelem').find('.idontexist').length)
  alert("element found");

此处还有: http://api.jquery.com/jQuery/

答案 2 :(得分:2)

您可以检查元素的子项,如:

HTML

<div id="myrules">
    <div class="ch">1</div>
    <div class="ch">2</div>
    <p>3</p>
</div>

jQuery的:

alert($("#myrules").children().length) // Alerts total children exists

您还可以检查元素中的特定总孩子数:

alert($("#myrules").children('div').length)
alert($("#myrules").children('p').length)

http://jsfiddle.net/agG3d/1/

答案 3 :(得分:1)

试试这个:

alert($($("#myrules").find("#am")).length);

答案 4 :(得分:1)

试试这个

if($('#myrules').children('div').length > 0){}