IE и JavaScript, добавление контента с помощью JS - PullRequest
0 голосов
/ 05 сентября 2011

Я строю анкету в основном на JavaScript. Каждый вопрос добавляется на страницу с помощью JS после нажатия следующей кнопки и загрузки страницы.

В IE, если я просматриваю источник, он фактически не показывает вопрос, который был добавлен JS. Вопрос добавлен, и эта часть работает нормально.

Теперь я делаю:

f.parent().parent().attr("class").split(" ")[1]

чтобы получить класс из вопроса. Это работает в IE8 и всех других браузерах, но не в IE9.

Если я это сделаю:

f.parent().parent().hasClass("foo")

возвращает ложь! Но у него есть класс, хотя я не вижу ни одного html вопроса, добавленного с помощью JS, и полагаю, что IE его не видит !!

Это работает в IE8 ...

ЕСЛИ я console.log объекта, который он выдает, дает мне текст: LOG: [object Object]. это тоже не помогает, потому что вы даже не можете щелкнуть объект, как во всех других отладчиках !!! IE ....

EDIT:

После дополнительных испытаний:

Вы нажимаете кнопку, чтобы вызвать эту часть класса (). Если я сделаю: console.log ($ (f.parent (). Родитель ()). Текст ()) возвращает текст кнопок! поэтому .parent (). parent () на самом деле не работает правильно

HTML

<tr class="matrix_row other>
<td>Other (specify)</td>
<td>&nbsp;</td>
<td>
<a class="add_more_matrix_input" href="#">Add one</a>
</td>
</tr>

Javascript:

$(".add_more_matrix_input").live("click", function() {
            var f = $(this);
            // console.log($(f.parent().parent()).text())
            last_key = f.parent().parent().attr("class").split(" ")[1]

1 Ответ

1 голос
/ 05 сентября 2011

Вам лучше использовать f.parents('tr'), чтобы достичь tr.Не уверен, что IE9 может сделать f.parent().parent() не вашим tr, но он определенно сделал что-то плохое :).

В любом случае, использование f.parents('tr') защитит вас от побочных эффектов, скажем, покрытия вашего a с помощью div, которое может понадобиться в будущем.

Позвольтемы знаем, если это все еще не работает, тогда мы попытаемся копать глубже.

Кроме того, вы должны использовать hasClass.Если по какой-либо причине это не работает, найдите эту причину, не пытайтесь проанализировать атрибут class.

ОБНОВЛЕНИЕ

Кроме того, вы пропустили закрытие " в объявлении класса в tr: <tr class="matrix_row other>

...