从JQuery中的Array获取特定标记

时间:2014-09-29 17:55:20

标签: javascript jquery html css

我正在尝试获取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>

3 个答案:

答案 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)

假设您有完整的表定义,以下内容将起作用:

$("td b:first").css('color')

jsfiddle

答案 2 :(得分:-2)

Jquery支持psuedo选择器, 我没有太多的数组和JavaScript经验, 但如果必须在你的TD中选择第一个B标签,我会尝试写

$("td b:first").css("color","#f00");

它会将颜色设置为红色, 您也可以使用attrib。

希望它可以帮助你...!