这是一个非常理论化的问题...
假设我有一个已知的“ul”,并且在这个“ul”中有一个背景不是灰色而是白色的“li”,我想选择这个“li”并更改它的文本......会怎样是在 jQuery 中执行此操作的方法吗?
我可以用这个找出“li”:
$("ul#menu1").children().css("background-color", "white")
现在我如何编写命令来改变它的文本是:
.html("new text")
但是我如何将它们链接在一起呢?这是我的问题...谢谢!
最佳答案
您现有的代码行:
$("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)"
的字符串,即使您 < em>设置颜色为字符串"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");
关于当您只知道 parent 时,jquery 更改一些具有特定 css 的 child 的 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17772212/