嗨,我正在尝试构建一个小片段,以告诉我给定的父元素是否具有子元素,我仍在调试东西,以了解Jquery和JS的一般工作原理。这是我到目前为止的内容:
$(document).ready(function(){
var str_dv = $('#la');
$('p , span').on('click' , function(e){
// console.log( str_dv,e.target , str_dv.has(e.target), !str_dv.has(e.target).length)
if (str_dv.has(e.target).length > 0) {
console.log('has the element');
}
});
});
我只是好奇,但是当我说
parent.has(child)
时,如果找到孩子,将返回has();如果找不到孩子,它将返回什么?我向SO提出了类似的问题,但找不到一个问题,甚至找不到Jquery文档的问题。
如果我看一下Jquery源,我会看到:
"has": markFunction(function( selector ) {
return function( elem ) {
return Sizzle( selector, elem ).length > 0;
};
}),
这对我完全没有意义。
所以再次回到我的问题,has()返回什么? (何时找到传递的元素,以及何时找不到)?
最佳答案
has()返回什么?
根据文档,
将匹配的元素集减少为后代与选择器或DOM元素匹配的元素。
因此,通过具有子元素(其选择器已传入)的元素对匹配集合中的元素进行了过滤。
例如,选择器是:
$("li").has("ul");
这将仅选择其中包含ul元素的li元素。
Demo For has selector
关于jquery - 找到元素时,has()返回的确切内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28758832/