在jQuery中使用hasClass未检测到内部类名称

时间:2018-10-18 02:22:56

标签: javascript jquery

a=$("<div></div>").html('<div class="wow">Have a good day!!!</div>')
console.log('check if wow present?', a.hasClass('wow'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

如何检查是否存在名称为wow的类,在上面的代码中,我尝试检查名称为wow的类总是为假?

3 个答案:

答案 0 :(得分:1)

您可以使用children()。hasClass

a=$("<div></div>").html('<div class="wow">Have a good day!!!</div>')
console.log('check if wow present?', a.children().hasClass('wow'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:0)

您返回sqlite> CREATE VIRTUAL TABLE zh_text5 USING fts5(text, tokenize=icu zh_CN); Error: parse error in "tokenize=icu zh_CN" 是因为false仅适用于立即元素,而不适用于子元素。

$a.find(".wow").length将返回类.hasClass().wow中发生了多少次,包括孩子的孩子(依此类推)。 $a将此转换为布尔值。

在下面的代码中,我选择使它成为jQuery插件,以便您可以像使用!!一样使用$element.anyChildHasClass("wow")

$element.hasClass("wow")
//Create jQuery plugin
$.fn.anyChildHasClass = function(className) {
    return !!this.find("."+className).length;
};

//EXAMPLE 1: First child has class
var $a = $("<div></div>").html('<div class="wow">Have a good day!!!</div>');
console.log( $a.anyChildHasClass("wow") ); //true

//EXAMPLE 2: No child has class
var $b = $("<div></div>").html('<div>Have a good day!!!</div>');
console.log( $b.anyChildHasClass("wow") ); //false

//EXAMPLE 3: Child of a child has class
var $c = $("<div></div>").html('<div>Have a <span class="wow">good</span> day!!!</div>');
console.log( $c.anyChildHasClass("wow") ); //true

答案 2 :(得分:0)

如果代码应注意嵌套级别,则使用$()。length

a = $("<div></div>").html('<div class="wow">Have a good day!!!</div>')
console.log('check if wow present?', 0 < a.find('.wow').length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>