LINUX.ORG.RU

Создание объектов «на лету» - баг?

 


0

1

Создаём $elem=$(<input type='checkbox'>), затем делаем $elem.prop('checked', true). Можем проверить - оно действительно стало true.
А теперь берём $elem.0.outerHTML - и там нет ни слова про checked!
Хуже того, проверяем $elem.wrap(<p>).parent().html() - и там тоже нет ни слова про checked!

http://jsfiddle.net/KSZ4B/ - пример. Это нормально?

★★★★★

Ответ на: комментарий от Apple-ch

Я знаю про разницу attr() и prop(). Неужели ты хочешь сказать, что prop() не должен отражаться на html-коде, быть чисто внутренним объектом?

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Xellos

Я знаю про разницу attr() и prop()

Не знаешь.

Неужели […] prop() не должен отражаться на html-коде

У твоего инпута нет атрибута checked, а свойство есть всегда. Ты меняешь свойство, атрибут от этого не может появиться волшебным образом.

Замени в своём фидле проп на аттр и убедись, что так оно и есть.

Apple-ch ★★
()
Последнее исправление: Apple-ch (всего исправлений: 1)
Ответ на: комментарий от Apple-ch

атрибут от этого не может появиться волшебным образом

Хм. Но prop() это самый кошерный способ установить свойство, путём независящим от браузера. И я хочу чтобы этот способ дал мне отражение в html-коде. Как мне это сделать? Перебирать, во что именно поставить attr (в true, в 1, в checked или ещё куда) не хочу.

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Xellos

хочу чтобы этот способ дал мне отражение в html-коде

Имхо, ты хочешь странного. Хочешь установить свойство — юзай проп, хочешь атрибут — юзай аттр.

путём независящим от браузера

От браузера тут зависимости нет, только от доктайпа.

Apple-ch ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.