2016-08-02 4 views
0

Пусть HTML документ, в котором есть некоторые внутренние анкерные/закладки и другие HTML общего содержания:document.querySelectorAll ('a [id = "*"]'); и подстановочный знак или регулярное выражение?

<a id='alfa'></a> 
    other HTML content 
<a id='beta'></a> 
    other HTML content 
<a id='gamma'></a> 
    other HTML content 
<a id='delta'></a> 
    other HTML content 
<a id='omega'></a> 
    other HTML content 
... 
    other HTML content 
<a id='etha'></a> 

другое содержимое HTML: значит, что-нибудь еще, даже другие <a href='something'>, без какой-либо идентификатор установить.

Что я хочу - это крестовое (последнее) решение для браузера, чтобы получить все якоря с идентификатором, но не те, у кого нет идентификатора.

Но я хочу, если это возможно, в чистом js, чтобы выбрать только в одной команде js, все привязки, которые имеют свой атрибут id, установлены в любой общий знак.

Я уже знаю, есть возможность получить их все, а затем с помощью цикла for, который мне нужен, но это не оптимальное решение. Я также знаю https://stackoverflow.com/a/8714421/6508528, чтобы получить элементы, которые запускают, заканчивают или содержат некоторую часть ids. Но что, если я не знаю какой-либо части/подстроки идентификатора?

Я не знаю, может быть что-то вроде:

var allAnchors = document.querySelectorAll('a[id="*"]'); 

, что предотвращает необходимость повторной обработки массива allAnchors после получения.

ответ

2

Это захватывает все якорные элементы с id attr. набор:

document.querySelectorAll('a[id]'); 

Это захватывает все анкерные элементы без идентификатора:

document.querySelectorAll('a:not([id])'); 
+0

Пожалуйста, укажите: Это выбирает все-элементы ** без ** любого идентификатора или все-элементы ** с * * некоторый идентификатор? Я спрашиваю, потому что я не понимаю, что делает оператор не в этом положении. Заранее спасибо –

+0

Все анкерные элементы без какого-либо идентификатора. – Joundill

+0

Ох ... И для всех якорных элементов с идентификатором? –