2016-06-13 2 views
1

Я пытаюсь найти все теги span, у которых нет атрибутов - нет класса, нет стилей, ничего нечего. Я делал это:найти элементы DOM, которые не имеют атрибутов?

function hasAttributes(span) { 
    if (span.outerHTML.slice(0,6) === '<span>') return true; 
    return false; 
} 

Есть ли лучше (быстрее) способ проверить, является ли конкретный элемент квалифицируется?

ответ

2

Вы можете использовать querySelectorAll(), чтобы выбрать все spans, а затем использовать цикл for для фильтрации пролетов на attributes. Если у span нет атрибутов, он возвращает пустой массив.

var spans = document.querySelectorAll('span'); 
 
for (var i = 0; i < spans.length; i++) { 
 
    if (spans[i].attributes.length == 0) spans[i].style.color = 'blue'; 
 
}
<span>one</span> 
 
<span class="two">Two</span>

+1

предполагает ОП с помощью JQuery, хотя – charlietfl

+0

Это определенно работает, но время, которое потребуется, чтобы загрузить JQuery бы обойти какую-либо выгоду в время от другого решения. – Cliff

+0

@Cliff Обновлено с помощью чистого js-решения. –

0

Проверьте атрибуты свойства элемента для длины

function hasAttributes(span){ 
    return span.attributes.length; 
} 
Смежные вопросы