我有以下代码:
JS:
var test2 = ['RMrpi5Z8doc','JIPbUaqyYx0','MbjXYg0YRmw'];
$('tr').live('click', function(event){
$($(this).attr('class').split(' ')).each(function() {
if (!((this == 'even') || (this == 'odd'))) {
alert(jQuery.inArray(this, test2));
if (this == 'RMrpi5Z8doc') {
alert(this);
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<table>
<tr class="odd RMrpi5Z8doc">
<td>Kite</td>
<td>Just Like Vinyl</td>
<td>Audiotree</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
inArray不匹配并返回-1.与文字字符串匹配的if语句匹配.如果我在inArray的文字中替换,那也匹配.
我看过一篇文章说jQuery attr不再返回字符串了,但是查看jQuery网站上attr的文档似乎就是这样说的.
也许我应该以一种完全不同的方式来解决这个问题?
你错了each.你的意思是jQuery.each,通用迭代器:
$.each($(this).attr('class').split(' '), function ...);
Run Code Online (Sandbox Code Playgroud)
不each,jQuery实例上的实例函数:
$($(this).attr('class').split(' ')).each(function ...); // Wrong
Run Code Online (Sandbox Code Playgroud)
特别是,正在发生的是上述的这一部分:
$($(this).attr('class').split(' '))
Run Code Online (Sandbox Code Playgroud)
... $()使用数组调用,这不符合您的要求.:-)
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |