好吧,我有一个带有一些TR的html表格,如下所示
<tr id="myId" class="aRandomClass" selected="TRUE">...</tr>
<tr id="myId2" class="aRandomClass" selected="FALSE">...</tr>
并且有一个简单的选择器
var a=$("#"+tableId).find("[selected='TRUE']");
or
var b=$("#"+tableId + " tr[selected='TRUE']");
Firefox中的返回选择了='TRUE'的TR但是在MSIE 8-9中它什么也没有返回。我想问题是“选择”属性不应该由TR和IE发现它无效或类似的东西..但是下面的代码返回所选属性的值..
var c=$("#" + tableId + " tr").first().attr('selected');
还有一些值得注意的是,此代码也适用于IE中的JQuery 1.4.2。通过升级到JQuery 1.8.3,它仅适用于FF。
更改属性名称是我想要避免的解决方案。
我想到的解决方案是“为每个tr设置一个循环,如果选择='真'在var a中添加tr”。 有更好的建议吗?
答案 0 :(得分:1)
首先,您有重复的ID,这些ID应该是唯一的。其次,您可以选择tr[selected="true"]
'
而不是该属性,您应该使用data-selected
,因此您有一个有效的标记。
答案 1 :(得分:1)
我建议使用.prop()代替jq 1.8.3,但我真的不确定它可以帮助你:
var $trsSelected = $("#"+tableId).find('tr').filter(function(){return $(this).prop('selected')=='TRUE'});
var $trsNotSelected = $("#"+tableId).find('tr').filter(function(){return $(this).prop('selected')!='TRUE'});