我正在尝试获取color
内第一个<b>
元素的<td>
属性值。当我请求时,我从jquery获取一个数组对象:
var items = $(“td.yfnc_tabledata1”)。has(“img”);
这会返回包含<td>
标记的<img>
的30个结果。所以我的方法是尝试在for循环中执行此操作:
var color = $(items)[i] .find(“b”)。attr(“color”);
然后计算颜色=== Y ||颜色=== X等等。
我似乎无法找到如何获取第一个<b>
的颜色属性。 HTML看起来像这样:
<td>
<img src="" />
<b style="color:#aaa000"> </b>
<b style="color:#aa6700"> </b>
</td>
答案 0 :(得分:2)
var color = $(items[i]).find('b:first').css('color')
// or, to get the exact HEX you specified (as long as you have specified it by a style attrib, so won't work if you specify it by ext css)
var color2 = $(items[i]).find('b:first').attr('style').split(':')[1]
color
是一个包含rgb的字符串。您可以通过RGB to Hex and Hex to RGB将其转换为十六进制。
color2
是一个包含十六进制值
你做错了什么
$(items)[i]
正在返回一个没有花哨的jQuery功能的DOM节点。而且&#39;颜色&#39;不是属性,它是css的属性,所以即使.attr("color");
也无法工作。
为什么我的示例正常工作
items[i]
将返回一个DOM节点。要在该元素上使用jQuery方法,您必须将其作为参数传递给$
(jQuery
别名)函数。这将返回一个包装的jQuery对象。在该对象上,您将能够检查:first
(不是 :first-child
)<b>
子元素,然后您将最终要求awsm jQuery给出你的颜色&#39;由style属性在css上指定。
P.S。您也可以使用$.each(items, function(){ // $(this) is the iTh item })
答案 1 :(得分:1)
答案 2 :(得分:-2)
Jquery支持psuedo选择器, 我没有太多的数组和JavaScript经验, 但如果必须在你的TD中选择第一个B标签,我会尝试写
$("td b:first").css("color","#f00");
它会将颜色设置为红色, 您也可以使用attrib。
希望它可以帮助你...!