я получил li
, который выглядит как:Javascript получить элемент в LI тег
<li temp="true">HELLO</li>
Как бы я получить «Темп», так что я могу манипулировать «HELLO» в JS ... Я знаю, как по идентификатору или даже имя класса
я получил li
, который выглядит как:Javascript получить элемент в LI тег
<li temp="true">HELLO</li>
Как бы я получить «Темп», так что я могу манипулировать «HELLO» в JS ... Я знаю, как по идентификатору или даже имя класса
В поддержку браузеров (то есть, ничего, кроме древнего IE):
var li = document.querySelector("li[temp=true]");
Если поддержка старше IE необходимо попробовать:
var li = document.querySelector ? document.querySelector("li[temp=true]")
: (function() {
var lis = document.getElementsByTagName('li'), l = lis.length, i;
for(i=0; i<l; i++) {
if(lis[i].getAttribute("temp") == "true") return lis[i];
}
return false;
})();
Это сработало ... Я даже не знал о querySelector ... –
Это фантастическая функция, которая делает около 99% всего использования jQuery полностью устаревшим, к моему удовлетворению! IE8 поддерживает его, а это означает, что единственные люди, которые не имеют к нему доступа, - это те, кто решительно решил отключить Центр обновления Windows (из чего мое мнение - подсунуть их обратно). Кроме того, вы можете использовать 'document.querySelectorAll', чтобы получить список совпадающих узлов, и вы даже можете заменить' document' на выбранный вами узел только для поиска этого поддерева. –
@Kolink Приходите сейчас, вы действительно предпочитаете писать весь этот код для записи '$ ('li [temp = true]')'? Как этот «устаревший» jQuery, когда он делает именно то, что делает jQuery? –
В JQuery, вы можете использовать селектор атрибута:
$('li[temp="true"]');
В качестве альтернативы, вы можете использовать метод document.querySelectorAll()
для нативного раствора JS. Вы должны быть осведомлены о последствиях кросс-браузерных этого, однако:
var ele = document.querySelectorAll('li[temp="true"]');
Вы можете увидеть jsFiddle Demo из вышеперечисленного.
Как и в сторону, вы должны использовать data-
атрибуты для хранения пользовательских атрибутов с HTML-элементов, например, правильный синтаксис должен быть:
<li data-temp="true">HELLO</li>
Невозможно увидеть тег 'jQuery' на вопрос. –
Но ребята, разве вы не знали? [jQuery - это ответ на все!] (http://www.doxdesk.com/img/updates/20091116-so-large.gif) –
@ Kolink Я действительно рассмеялся вслух. +1 – BenM
перебрать все ли.
var li = document.getElementsByTagName("li");
var found;
for(var i=0; i< li.length;i++){
if(li[i].getAttribute("temp") == "true"){
found = li[i]; break;
}
}
console.log(found);
ИЛИ Вы можете использовать собственный запрос
var found= document.querySelectorAll('li[temp="true"]');
Что вы пробовали? И знаете ли вы, что это _not_ действительный HTML? –
Для этой цели вы должны использовать атрибуты data. 'data-temp =" true "'. Затем используйте метод getAttribute или DOM для данных, чтобы получить значение. –
Посмотрите здесь: http://stackoverflow.com/questions/6267816/getting-element-by-a-custom-attribute-using-javascript –