本文介绍了jQuery if has()选择器做的东西的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
<ul id="bad-drifting">
<li>text</li>
</ul>
jQuery(document).ready(function() {
if (jQuery('#bad-drifting').has('em')) {
jQuery('#bad-drifting').css({'color': 'red'});
jQuery('#bad-drifting').css({'font-weight': 'bold'});
}
});
jQuery(document).ready(function() {
if (jQuery('#bad-drifting li:has(em)')) { // .has('em')
jQuery('#bad-drifting').css({'color': 'red'});
jQuery('#bad-drifting').css({'font-weight': 'bold'});
}
});
我想做的不只是设置一些CSS,而是进行更复杂的更改,但我不能弄明白为什么这总是真的......这是一个错误还是我错过了什么?
What I want to do is not just set some CSS but make more complicated changes but I can't figure out why this always returns true... Is it a bug or what am I missing?
推荐答案
那是因为 has
返回一个jQuery对象,一个对象是JavaScript中的truthy值,你应该使用 length
property:
That's because has
returns a jQuery object and an object is a truthy value in JavaScript, you should use length
property:
if (jQuery('#bad-drifting').has('em').length) {
这篇关于jQuery if has()选择器做的东西的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!