您好我有这个代码结构:
<ul id="list">
<li style="background-color: rgb(100, 100, 100);">
<a href="/anyHref_1">list_1</a>
</li>
<li style="background-color: rgb(50, 50, 50);">
<a href="/anyHref_2">list_2</a>
</li>
</ul>
我需要从“a”获取href,这是列表的子元素,背景颜色为:rgb(100,100,100),所以:
var test = $('ul#list li[style~="backgroundColor: rgb(100, 100, 100)"] > a').attr('href');
但测试未定义:/任何人都可以告诉我我做错了什么?谢谢!!和问候:)
答案 0 :(得分:1)
您可以使用filter吗?这将返回li
背景的所有rgb(100,100,100)
:
$("li").filter(function() {
return $(this).css("background-color") === "rgb(100, 100, 100)";
});
获取单个链接的href:
var href = $("li").filter(function() {
return $(this).css("background-color") === "rgb(100, 100, 100)"
}).find("a").prop("href");
我采用这种方法的原因是因为它不依赖于style属性,而该属性可能无法以您期望的方式输入。
答案 1 :(得分:0)
您的选择器出错。它应该是背景色
$('ul#list li[style="background-color: rgb(100, 100, 100);"] > a').attr("href")
而不是backgroundColor
答案 2 :(得分:0)
您必须使用* =并将backgroundColor更改为背景颜色
var test = $('ul#list li[style*="background-color: rgb(100, 100, 100)"] > a').attr('href');