Internet Explorer 7 возвращает «неопределенное» из селектора классов jQuery - PullRequest
1 голос
/ 12 октября 2010

У меня есть небольшая функция JavaScript, которая (помимо прочего) извлекает идентификатор последнего элемента с определенным именем класса.

var lastRowID = $(".sectionRow:last").attr('id');

Он должен найти элементы в таблице, которая выглядит следующим образом:

<table>
    <tr id="courseSection[0]" class="sectionRow"><td>stuff</td></tr>
    <tr id="courseSection[1]" class="sectionRow"><td>more stuff</td><td><a href="javascript:removeSectionRow(1)">(remove)</a></td><td><a href="javascript:addSectionRow()">(add additional row)</a></td></tr>
</table>

Если я быстро наберу alert(lastRowID), я получу 'courseSection [1]' в Chrome, Firefox и IE8.Однако IE7 ненавидит меня и говорит «undefined».

Примечание: я также пытался $(".sectionRow").last().attr('id') безуспешно.

Есть мысли о том, что может происходить?Спасибо!

Редактировать: Эта таблица была добавлена ​​с помощью javascript при нажатии кнопки (кнопка показывает / добавляет следующую часть формы).Так что это не статический HTML, который был в DOM при загрузке страницы.

Функция removeSectionRow (n) вызывается при нажатии на ссылку удаления.Он удаляет указанную строку, а затем ищет последнюю строку, оставшуюся с именем класса «sectionRow», чтобы дать этой строке ссылку «добавить дополнительную строку».Идея в том, что пользователь может добавлять и удалять строки по своему усмотрению.Вот скриншот готового результата, чтобы проиллюстрировать то, что я, вероятно, плохо объясняю: http://imgur.com/uXYHj.png

Ответы [ 2 ]

1 голос
/ 12 октября 2010

Символы [ и ] не являются действительными идентификационными символами.Возможно, это вызывает некоторые проблемы в IE7.

Проверьте количество элементов, возвращаемых селектором, чтобы увидеть, получаете ли вы <tr> или нет.

alert( $(".sectionRow:last").length );
0 голосов
/ 12 октября 2010

Может быть, потому что это недопустимый HTML?Вам нужны <td> теги там.У меня работает в IE8.

http://jsfiddle.net/VCpZq/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...