Я застрял, используя родные методы DOM (я знаю, верно?), И у меня есть такая структура:
<div>
<input>
<a>
</div>
Я использую onClick для тега <a>
и хочучтобы получить значение из ввода.В Chrome / OS X что-то вроде
this.previousSibling.previousSibling.value
будет работать хорошо.Я удваиваю его, потому что первый .previousSibling
возвращает текстовый узел <div>
, а еще один до этого получает желаемый ввод.
Мой вопрос: всегда ли .previousSibling
возвращает текст родителя?узел, если он существует?
Спасибо!
РЕДАКТИРОВАТЬ / Решение
Моим хакерским решением было (кросс-браузер), чтобы я выглядел правильнокак это:
var el = this;
while(el.nodeType == 3 || el.tagName && el.tagName !== 'INPUT') {
el = el.previousSibling
};
console.log(el.value);
Месторасположение, но работает в разных браузерах и достаточно легко, чтобы набрать onClick
для моих нужд.Спасибо за помощь в выяснении того, что здесь обсуждалось (разрывы строк между HTML в частности)