2011-08-18 68 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