jQuery last-child создает исключение в IE8 - PullRequest
0 голосов
/ 17 октября 2011

У меня есть таблица с 3 столбцами.3-й столбец содержит только теги для сортировки строк.В $ (document) .ready я использую jQuery, чтобы скрыть 3-й столбец (содержащий только теги) и добавить классы стилей к другим столбцам, используя

$(document).ready(function() {
$("#songListTable tr td:nth-child(3)").hide().width(0); 
$("#songListTable tr td:nth-child(1)").addClass("songTitle");
$("#songListTable tr td:nth-child(2)").addClass("songPerformer");
});

. Это работает во всех браузерах. Я добавил .width (0) чтобы скрытый столбец не занимал место в макете.

Затем я использую форму выбора, чтобы отправить значение:

<form id="songSortForm" name="songSortForm" method="post" action="">
<select name="songSortSelect" id="songSortSelect" onChange=sortSongs(this.value)>

в сценарий для циклического перебора всех строк в столбце, чтобы проверить, содержит ли 3-й тд в этой строкезначение и показать или скрыть всю строку в зависимости от результата.

function sortSongs (tagQuery) {
$("#songListTable tr").each(function() {
    $thisText= $(this).find("td:last-Child").html();
    $(this).show();

    if ($thisText.indexOf(tagQuery)>-1) {
    $(this).show();
    }
else {
    $(this).hide();
    } 
})
};

Это прекрасно работает во всех браузерах, кроме IE.Инструменты разработчика IE показывают исключение, выброшенное и не перехваченное в скрипте jQuery1.6.2 (строка 17, символ 12370).Однако, когда я выполняю сценарий, ошибка появляется каждый раз, когда я использую «td: last-Child» в своем сценарии сортировки.сценарий ломается.last-Child не выдает ошибки в скрипте (document) .ready, поэтому, вероятно, это ошибка в моем собственном коде, но я искал ответ в течение 2 дней.

Единственный прикрепленный стильк anthying в таблице относятся семейство шрифтов, цвет, ширина, поля и выравнивание текста.

ЛЮБАЯ помощь будет полезна ЛЮБОЙ !!

Вы можете увидеть тестовую страницу по адресу: http://donbryn.ipage.com/media.php (нажмите «Список песен»).

1 Ответ

0 голосов
/ 14 августа 2012

Я думаю, это потому, что IE8 не поддерживает :last-child селектор, а просто :first-child

...