Jquery获取子元素的attr

时间:2014-05-28 13:45:40

标签: javascript jquery html css get

您好我有这个代码结构:

<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');

但测试未定义:/任何人都可以告诉我我做错了什么?谢谢!!和问候:)

3 个答案:

答案 0 :(得分:1)

您可以使用filter吗?这将返回li背景的所有rgb(100,100,100)

$("li").filter(function() {
   return $(this).css("background-color") === "rgb(100, 100, 100)";
});

jsFiddle

获取单个链接的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'); 

http://jsfiddle.net/x96Je/1/