jQuery.has()总是为真
jQuery.has() is always true
我有这个HTML在一个页面上:
<div class="category-products">
<div class="rugs-cat"></div>
....
</div>
<div class="category-products">
<div class="toolbar-top"></div>
.....
</div>
我试图添加一个样式,如果.category-products
有.rugs-cat
作为后代,并删除它,如果它没有。我尝试了这个(在dom ready上执行):
if(jQuery(".category-products").has(".rugs-cat")) {
jQuery(".category-products").css("margin-left", "150px")
}
else {
jQuery(".category-products").css("margin-left", "0");
}
但是每次都加边距。我敢肯定在第二页的任何地方都没有.rugs-cat
类
has()
将始终返回一个对象(一个集合)。该集合有时为空,这就是希望测试的内容:
if (jQuery(".category-products").has(".rugs-cat").length > 0)
{
jQuery(".category-products").css("margin-left", "150px")
}
else
{
jQuery(".category-products").css("margin-left", "0") ;
}
如果el
有与pattern
匹配的后代,则假设$el.has(pattern)
返回true。实际上,它返回包含这样一个元素的元素集合。如果没有,则返回[]
(空集合),为真值。相反,使用
(jQuery(".category-products").has(".rugs-cat").length)
当[]
的length
为0时,
官方文档说has()
方法检索数组找到的元素,不是布尔值。你需要
if (jQuery(".category-products").has(".rugs-cat").length > 0)
代替
if (jQuery(".category-products").has(".rugs-cat"))
参见jsfiddle example
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用jquery在填充自动完成的值后使文本框只读
- jQuery:循环一个具有不同超时值的循环
- 用程序搜索JQuery数据表中的文本
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jQuery匹配JSON对象的部分文本
- Jquery POST未填充数组
- .has() 函数在 if 语句 (jQuery) 中不起作用
- jquery has() 似乎没有按预期工作
- jQuery alter element if has class
- 如何将 jQuery has() 与复选框输入一起使用
- JQuery :has(),我需要只选择孩子
- 一起使用 jQuery :has() 和 :contains() 选择器
- jQuery - Don't allow click event with parent has somethi
- jQuery if Element has an ID?
- :has() jquery工作不正常
- jQuery.has()总是为真
- JQuery Mobile has no method 'listview()'
- 如何将点击事件绑定到元素has'使用jquery的特定子项