У меня невероятно трудно найти фактический элемент DOME из селектора jquery. Образец кода:
<input type="checkbox" id="bob" />
var checkbox = $("#bob").click(function() { //some code } )
и в другой части кода я пытаюсь определить проверенное значение флажка.
if ( checkbox.eq(0).SomeMethodToGetARealDomElement().checked )
//do something.
И, пожалуйста, я не хочу делать
if ( checkbox.eq(0).is(":checked"))
//do something
Это заставляет меня обойтись без флажка, но иногда мне нужен настоящий элемент DOME.
javascript
jquery
dom
BillRob
источник
источник
applyBindings
ожидает узел DOM, а не селектор jQuery. Этот вопрос (и его ответы) как раз то, что нужно.Ответы:
Вы можете получить доступ к необработанному элементу DOM с помощью:
или проще:
Однако на самом деле вам не так много нужно (по моему опыту). Возьмите пример с вашим флажком:
является более "jquery'ish" и (imho) более кратким. Что, если вы хотите их нумеровать?
Некоторые из этих функций также помогают маскировать различия в браузерах. Некоторые атрибуты могут быть разными. Классический пример - AJAX звонки. Чтобы сделать это правильно в сыром Javascript есть около 7 вариантов для
XmlHttpRequest
.источник
$('a').get(0).nodeType==1
в Firebug на этой странице, оценивает ли это как истинное или нет?$('<input type=checkbox>').appendTo('body').get(0).checked
Изменить: кажется, я был неправ, предполагая, что вы не можете получить элемент. Как и другие опубликовали здесь, вы можете получить его с:
Я убедился, что это на самом деле возвращает элемент DOM, который был сопоставлен.
источник
Мне нужно было получить элемент в виде строки.
Что даст вам что-то вроде:
... как строка, а не как элемент DOM.
источник
Если вам нужно напрямую взаимодействовать с элементом DOM, почему бы просто не использовать
document.getElementById
, если вы пытаетесь взаимодействовать с конкретным элементом, вы, вероятно, будете знать идентификатор, поскольку предполагается, что имя класса находится только в одном элементе, или какая-то другая опция имеет тенденцию к быть рискованнымНо я склонен согласиться с другими, что в большинстве случаев вы должны научиться делать то, что вам нужно, используя то, что дает вам jQuery, поскольку он очень гибкий.
ОБНОВЛЕНИЕ: на основе комментария: вот сообщение с хорошим объяснением: http://www.mail-archive.com/jquery-en@googlegroups.com/msg04461.html
Это вернет значение, если оно проверено, или 0, если это не так.
$(this).val()
просто входит в DOM и получает атрибут «значение» элемента, независимо от того, проверен он или нет.источник