我正在尝试识别某个包含某些文本和类的h4标记(遗憾的是它没有id),然后替换该文本。我有以下if语句,但当h4与此if语句匹配true时,它将替换页面上的所有h4标记,而不是仅替换为true的标记。
我的挑战是我只能通过全局jQuery实现这一点。那是我的垮台吗?
if ($("H4:contains('Topic')") && $('H4').hasClass('boxHeaderTitle')) {
$('h4').text('Posts');
}
答案 0 :(得分:2)
你的if
表达式有点奇怪。如果以下两个都为真,则表达式将始终评估为true
:
h4
包含文字Topic
。因为在这种情况下,$("H4:contains('Topic')")
将返回真值。h4
分配了类boxHeaderTitle
。因为在这种情况下,$('H4').hasClass('boxHeaderTitle')
将返回真值。问题在于if
的正文中,您将所有h4
的文本设置为Posts
。
正确的方法可能是:
var heading = $("H4:contains('Topic')");
if ( heading.hasClass('boxHeaderTitle')) {
heading.text('Posts');
}
我假设您要更改包含h4
的{{1}}的文本,并且还要更改类Topic
。或者,您可以尝试不同的方法:
boxHeaderTitle
上述内容适用于多个此类标记。
答案 1 :(得分:0)
尝试
if ($("H4:contains('Topic')") && $('H4').hasClass('boxHeaderTitle')) {
$(this).html('Posts');
}
或
$("H4.boxHeaderTitle:contains('Topic')").each(function(){
$(this).html('Posts');
});