2011-08-18 67 views
1

在HTML我有表是这样的:JQuery不支持IE *中的自定义属性?

<table for="availableTimeRanges"></table>

然后我用户的jQuery找到表

var table = $("table[for='availableTimeRanges']"); 

在Firefox和Chrome,这个工作,可以返回的表,但在IE8,没有什么回报 然后我运行下面的代码IE8,发现该属性值为空:

$.each($("table"), function(i,n){ 
     alert($(n).attr("for") 

}); 

什么原因

+2

'for'不是一个自定义属性 - 它是一个现有的属性(它是在标准中定义的),但是你在TABLE元素上滥用了它。 –

回答

1

要添加到ŠimeVidas所说的内容,尝试更改fo的名称R键别的东西像forparam,htmlfor等(您可以与表它不会使用为是一个输入标签)

$(function() { 

     $('table[forparam=availableTimeRanges]').each(function() { 
      alert($(this).attr('forparam')); 
     }); 

    }); 
+0

它的工作原理,谢谢 – Xilang

1

您更好地使用类名,他们是随处可见支持

<table class="for_availableTimeRanges"></table> 

$('.for_availableTimeRanges') 
0

在想你应该尝试包装你的代码$(function(){...});

$(function(){ 
    $.each($("table"), function(i,n){ 
     alert($(n).attr("for") 
    }); 
}); 
0
<table data-ranges="availableTimeRanges"> </table> 

var ranges = { 
    set : function (options){ 
    options = options || []; 
    //loop and set ranges 
    }, 
    get : function(){ 
    $("table [data-ranges='availableTimeRanges']").each(function(){ 
     alert($(this).data("ranges")); 
    }); 
    } 
}; 
ranges.get // calls get method 
+0

有点解释会很棒:)在所以人们往往想知道“为什么”:) – ForceMagic