0

我有许多 div 的列表。每个块总是遵循这种模式,在页面上多次出现。

<div ...>
    <div ...>count</div>
    <div ...>Unread</div>
</div>

目标是检查兄弟div,如果计数不为零,则修改 css. 否则跳过。

它们没有ids,并且类名发生了变化。其他人编写了 html,所以我无法改进。

我的代码似乎没有选择包含“未读”的 div。它应该修改颜色。

http://jsfiddle.net/ninmonkeys/5yDZb/

如果选择使用contains("Unread")确实有效,我应该能够通过使用父级来获取兄弟姐妹吗?

$("div:contains('Unread')").css("background-color:red !important;");
4

3 回答 3

3

您的问题不在于选择元素,而在于您使用css

http://jsfiddle.net/5yDZb/2/

.css("background-color", "red");

设置值时,.css有两个参数,第一个是属性,第二个是值。

于 2013-10-23T20:53:52.673 回答
1
$("div:contains('Unread')").css({"background-color":"red"});
于 2013-10-23T20:56:02.090 回答
1

css 语法不正确,但我认为单独修复它不会让你得到你想要的。选择器匹配您想要的 div的:contains()父级。您可以filter改用:

http://jsfiddle.net/TPeSP/

$('div').filter(function() {
    return $(this).text() == 'Unread' && $(this).siblings('div').text() != "0";  
}).css("background-color", "red");
于 2013-10-23T20:57:55.400 回答