【发布时间】:2013-07-24 12:34:37
【问题描述】:
我需要帮助。我的任务是从 span 元素中提取一个单词,然后将该单词分配给与 class 相同的 span 元素。
我已经写了这段代码:
jQuery(".product span").each(function() {
if(jQuery("this:contains('hat')")) {
jQuery(this).addClass("hat");
} else if (jQuery("this:contains('sunglasses')")) {
jQuery(this).addClass("sunglasses");
} else {
jQuery(this).addClass("vest");
};
});
然而,它并不能正常工作。它将类“帽子”分配给类“产品”中的所有跨度元素。
使用时:
jQuery(".product span").each(function() {
if(jQuery("this:contains('hat')")) {
jQuery(this).addClass("hat");
};
});
它工作并将“帽子”类分配给同一个跨度元素。如果我这样做,它也有效。但我不希望有这样的三行代码:
jQuery(".product span:contains('hat')").addClass("hat");
我希望它在一个很好的 if 和 else 语句中,或者在可能的情况下使用解析的其他方式。
其他注意事项:我没有使用 jQuery 的快捷方式,因为它会与我有趣的其他库发生冲突。我也知道 var $js = jQuery.noConflict();方法。
非常感谢 Sushanth、Kevin 和 Karl 的大力响应!我希望我可以将两个答案都作为解决方案
【问题讨论】:
-
这不是你想要的吗?
-
不,我想要一个很好的 if 和 else 语句。
-
:contains() 区分大小写。这可能是你的问题吗?
-
另外,由于代码的结构方式,如果跨度包含帽子和太阳镜,则只会添加“帽子”类。
标签: jquery html contains addclass