这是一个非常理论化的问题......
假设我有一个已知的“ul”,在这个“ul”中有一个“li”,其背景不是灰色而是白色,我想选择这个“li”并改变它的文本...会是什么是在jQuery中这样做的方法吗?
我可以用这个找出“li”:
$("ul#menu1").children().css("background-color", "white")
现在我如何编写命令以使其更改文本:
.html("new text")
但是如何将这些链接在一起呢?这是我的问题......谢谢!
答案 0 :(得分: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"
,在这种情况下:< / p>
$("#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");