У меня есть несколько элементов на странице HTML, которые имеют один и тот же класс, но это разные типы элементов. Я хочу узнать имя тега элемента, когда я перебираю их, но .attr не принимает «тег» или «имя тега».
Вот что я имею в виду. Рассмотрим эти элементы на странице:
<h1 class="rnd">First</h1>
<h2 id="foo" class="rnd">Second</h2>
<h3 class="rnd">Third</h3>
<h4 id="bar" class="rnd">Fourth</h4>
Теперь я хочу запустить что-то вроде этого, чтобы убедиться, что все мои элементы имеют идентификатор, если он еще не определен:
$(function() {
$(".rnd").each(function(i) {
var id = $(this).attr("id");
if (id === undefined || id.length === 0) {
// this is the line that's giving me problems.
// .attr("tag") returns undefined
$(this).attr("id", "rnd" + $(this).attr("tag") + "_" + i.toString());
}
});
});
В результате я бы хотел, чтобы элементы H2 и H4 имели идентификатор
rndh2_1
rndh4_3
соответственно.
Есть идеи о том, как я могу узнать имя тега элемента, представленного «этим»?
javascript
jquery
BigPigVT
источник
источник
Ответы:
должно быть
источник
Вы можете попробовать это:
Дополнительную информацию об is () см. В документации .
источник
nodeName
возвращает строку, которая, в зависимости от браузера, имеет верхний регистр или нет.is('*')
. Вероятно, он не ответит на OP, но у меня это сработало, спасибо, @middus!Поскольку я уже задавал этот вопрос раньше, и в моем случае это не помогло (у меня не было
this
, а вместо этого был экземпляр селектора jQuery). При вызовеget()
вы получите элемент HTML, с помощью которого вы можете получить,nodeName
как указано выше.или
источник
Вы также можете использовать,
$(this).prop('tagName');
если используете jQuery 1.6 или выше.источник
Да. Вы можете использовать приведенный ниже код:
источник
Я думаю, что вы не можете использовать
nodeName
в jQuery, поскольку nodeName является свойством DOM, а сам jQuery не имеет ниnodeName
функции, ни свойства. Но, судя поnodeName
словам респондента, который первым упомянул об этом , я смог решить проблему следующим образом:НОТА:
this
вот объект jQuery.источник
Поскольку это вопрос, который вы задаете в Google, используя jquery tagname first child в качестве запроса, я опубликую еще один пример:
Результатом jquery является тэг (в верхнем регистре): P
источник
Вы можете получить имя тега элемента html на всей странице.
Вы можете использовать:
источник
примечание: замените его на свой селектор (h1, h3 или ...)
источник
Я только что написал это для другого выпуска и подумал, что это может помочь любому из вас.
Использование:
onclick="_DOM_Trackr(this);"
Параметры:
Исходный код:
источник
html > body > div#coreApp > div#productpage > div#productpage-wrapper > div > div > div > div > div#pthumb12 > form#thumb_uploader_src > input
$('*').each(function(_i,_e){$(_e).attr('title',_DOM_Trackr(_e,true));});
Лучший способ решить вашу проблему - заменить
$(this).attr("tag")
наthis.nodeName.toLowerCase()
илиthis.tagName.toLowerCase()
.Оба дают одинаковый результат!
источник
Рассмотрим быстрый метод ФИЛЬТРА :
возвращает:
так:
источник
Вместо этого просто выполните:
источник