2011-10-22 60 views
1

我需要一个jQuery脚本,它可以在所有td上更改颜色,前提是它包含一个包含“BG5”的onClick。 它需要在IE7上工作。我试过$(“a:contains('BG5')”).css(“background”,“#F6CED8”);在TD上更改bgcolor,其中包含一个包含XXX的onClick

这可能吗?

它们TD得到BUTTOM

<tr bgcolor='#F2F2F2'> 
    <td>2011-04-18</td> 
    <td>a</td> 
    <td>a</td> 
    <td align="center"><a href="#" onClick="edit('BG5')"><img src="../img/icon/skruenogle.png" border=0 alt="Delete corr"></A> 
    <td align="center"><a href="#" onClick="disregard('BG5')"><img class="click" src="../img/icon/redcross.png" border=0 alt="Delete corr"></A></td> 
</tr> 

<tr bgcolor='#FFFFFF'> 
    <td>2011-04-18</td> 
    <td>a</td> 
    <td>a</td> 
    <td align="center"><a href="#" onClick="edit('1A1')"><img src="../img/icon/skruenogle.png" border=0 alt="Delete corr"></A> 
    <td align="center"><a href="#" onClick="disregard('1A1')"><img class="click" src="../img/icon/redcross.png" border=0 alt="Delete corr"></A></td> 
</tr> 

回答

2

通过推的效果。如果我理解正确,你正在试图做的是改变每tr元素的背景颜色包含a标签在名为onClick的属性中具有字符串“BG5”。

如果沿着右边线的,尝试这样的事情:

$("a").filter(function() { 
    if($(this).attr("onClick")) { 
     return $(this).attr("onClick").indexOf("BG5") !== -1; 
    } 
}).closest("tr").css("background-color", "blue"); 

这里有一个working example使用HTML和上面的jQuery。基本上,获取所有a元素后,对它们进行过滤,因此我们只剩下onClick属性中包含字符串“BG5”的那些元素,为其获取最接近的tr元素,并设置背景颜色。

需要注意的重要一点是attr方法区分大小写,因此您需要确保您的HTML与您的HTML一致!

在另一张纸条上,你真的不应该使用bgcolor属性,as it's deprecated。应该始终使用CSS。此外,还有一些td元素在您的问题的代码中尚未关闭。这可能只是一个错字,但值得一提,以防万一!

+0

嗨...可以看到你的例子工作正常,但有一些错误的关键在IE与真正的一个我不工作在IE7。 http://jsfiddle.net/xzHAX/ – boje

+0

你的意思是“有什么问题”? *哪里不对? –