使用Attribute Contains Word Selector时,它应该评估为true吗?我正在尝试在if / else语句中使用它,如下所示,并且它没有评估为true。
<li class="orange blue">
<div class="answer">Some Content</div>
</li>
<input type="button" name="yellow" value="yellow" class="yellow" />
<br />
<input type="text" value="" class="result" />
$("input.yellow").click(function() {
if ( $("div.answer").parent().hasClass($("[class~='bl']")) == true ){
$("input.result").val("has class");
} else {
$("div.answer").parent().addClass("blue");
$("input.result").val("class added")
};
});
答案 0 :(得分:1)
根据建议的评论,hasClass
会收到string
。所以你可以使用is
: -
if ( $("div.answer").parent().is($("[class~='bl']"))){
或者你可以创建一个小jquery插件: -
$.fn.hasPartialClass = function(partial){
return new RegExp(partial).test(this.prop('class'));
};
并使用如下: -
if ( $("div.answer").parent().hasPartialClass("bl")){
答案 1 :(得分:1)
您忘记了使用&#34;属性包含 Word 选择器&#34;
因此,要匹配此选择器,您必须使用[class~='blue']
。
您不能使用[class~='bl']
,因为类属性确实包含单词&#39; bl&#39;但是“蓝色”这个词。
使用此选择器的方法:
$("input.yellow").click(function() {
if ( $("div.answer").parent().is("[class~='blue']") ){
$("input.result").val("has class");
} else {
$("div.answer").parent().addClass("blue");
$("input.result").val("class added")
};
});