Jquery с большими / многочисленными элементами в селекторе вызывает ошибку на IE8 - PullRequest
0 голосов
/ 30 марта 2011

Я пытаюсь запустить селектор, который имеет большое количество идентификаторов элементов для сопоставления, но в IE8 я получаю сообщение об ошибке: объект не поддерживает это свойство или метод.

jquery выглядит так:

var elements = $('#182,#183,#184,#185,#211,#212,#213,#214,#220,#221,
#222,#223,#225,#226,#227,#228,#234,#241,#242,#243,#244,
#245,#246,#247,#248,#250,#251,#252,#253,#256,#257,#258,#259,#260');

Фактический запрос на самом деле длиннее, а идентификаторы не последовательные.Я разбил список на более мелкие части и запускаю каждую часть отдельно.Все меньшие селекторы работают нормально.

Мне было интересно, есть ли способ, которым я мог бы использовать один селектор?

В качестве запроса здесь приведен пример разметки, но есть сотни строк вреальность:

<table id="ListTable">
<tbody>
<tr id="1" style="display: none;"></tr>
<tr id="2" style="display: none;"></tr>
<tr id="3" style="display: none;"></tr>
<tr id="4" style="display: none;"></tr>
<tr id="95" style="display: none;"></tr>
<tr id="5" style="display: none;"></tr>
<tr id="6" style="display: none;"></tr>
<tr id="7" style="display: none;"></tr>
<tr id="8" style="display: none;"></tr>
<tr id="9" style="display: none;"></tr>
<tr id="10" style="display: none;"></tr>
<tr id="11" style="display: none;"></tr>
<tr id="82" style="display: none;"></tr>
<tr id="83" style="display: none;"></tr>
<tr id="84" style="display: none;"></tr>
<tbody>
</table>

1 Ответ

2 голосов
/ 30 марта 2011

поместите класс для каждого из этих элементов с идентификаторами (кстати, не используйте идентификаторы только с числами. Сделайте их немного более информативными и просто проанализируйте их с помощью подстроки) и вместо этого вызовите этот класс, чтобы вы получили массив эти элементы:

$(".classname")

скажем, вы хотели выбрать:

<input id="#example_182" class="example" />
<input id="#example_125" class="example" />
<input id="#example_252" class="example" />
<input id="#example_183" class="example" />
<input id="#example_345" class="example" />
<input id="#example_456" class="example" />

затем вы можете выбрать их все, используя:

$(".example")

тогда, если вы хотите получить их id цикл через пример, а затем сделать подстроку

$(".example").each(function(ex) {
   myid = $(this).attr("id").substring(8)
})

* обратите внимание, вам лучше проверить документацию для каждого, я не уверен, что это синтаксис

...