2011-08-18 3 views
1

В HTML у меня на столе, как это:JQuery не поддерживает пользовательский атрибут в IE *?

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

я пользователь JQuery, чтобы найти таблицу

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

В светлячок и хром, это работает, может вернуться к столу, но в IE8, ничего возврата Тогда я запускаю ниже код в IE8, нашли значение атрибута пустым:

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

}); 

чем причина

+2

'for' не пользовательский атрибут - это существующий атрибут (он определен в стандарте), но вы неправильно используете его в элементе TABLE. –

ответ

1

Для добавьте к тому, что сказал Šime Vidas, Попробуйте изменить имя из fo г к чему-то еще, как 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

Немного объяснений было бы здорово :) На SO люди, как правило, хотят знать «почему» :) – ForceMagic

Смежные вопросы