我正尝试使用jQuery.contains(parent,child)检查某个元素是否为另一个元素的子元素,因此该函数的评估返回true,即使两个元素都不在后,也请在jsfiddle上找到它
HTML
<button onclick="clickme()">Click me</button>
JS
function clickme() {
parent = $("#parent")
child = $("#child")
alert(jQuery.contains(parent,child))
}
父元素具有以下属性
<li id="parent"><a class="dropmenu" selectdropvalue="8" geolocation="IN" href="javascript:void(0);" redirect="https://www.rohm.co.kr/">한국 - 한국어</a></li>
正在检查的子元素具有以下
<span>
<a style="width: 156px; display: block;" href="javascript:void(0);" id="portals-button" class="ui-selectmenu headlang">
<span class="ui-selectmenu-status" id="child">Europe - English</span><span class="ui-selectmenu-icon"></span>
</a>
</span>
这是使用它的正确方法吗?
答案 0 :(得分:1)
来自https://api.jquery.com/jQuery.contains/:
如果第二个参数提供的DOM元素是第一个参数提供的DOM元素的后代,则
$.contains()
方法返回true
,是直接子元素还是更多嵌套。
因此,如果我正确解释您的屏幕截图(避免顺便说一句!),它仍将返回true
:<span>
是<a>
的子元素,而<li>
是{{ 1}},而您正在使用contains(element li, element span)
。
考虑到您的最新编辑和jsfiddle:
来自https://api.jquery.com/jQuery.contains/:
注意:第一个参数必须是DOM元素,而不是jQuery对象或普通JavaScript对象。