0

这是一个非常理论的问题...

假设我有一个已知的“ul”,并且在这个“ul”中有一个“li”,其背景不是灰色而是白色,我想选择这个“li”并更改它的文本......会是什么方式在 jQuery 中做到这一点?

我可以用这个找出“li”:

$("ul#menu1").children().css("background-color", "white")

现在我如何编写命令以使其更改其文本是:

.html("new text")

但是我如何将这些链接在一起呢?这是我的问题...谢谢!

4

1 回答 1

3

您现有的代码行:

$("ul#menu1").children().css("background-color", "white")

...没有找到已经具有白色背景的特定 li 元素,它选择了所有 li 元素并将它们的背景更改为白色。如果您只想选择背景已经是白色的项目,您可以执行以下操作:

$("#menu1 li").filter(function() {
   return $(this).css("background-color") === "white";
}).html("new text");

尽管您可能会发现它.css("background-color")返回一个类似的字符串"rgb(255, 255, 255)",即使您颜色设置为字符串"white",在这种情况下:

$("#menu1 li").filter(function() {
   var bc = $(this).css("background-color");
   if (bc) bc = bc.replace(/\s/g,"").toLowerCase();
   return bc === "white" || bc === "rgb(255,255,255)" || bc === "#fff" || bc === "#ffffff";
}).html("new text");

演示:http: //jsfiddle.net/XfDy3/

于 2013-07-21T12:16:25.407 回答