Я хотел бы получить все элементы/узлы на странице HTML, содержащие атрибуты, которые начинаются с чего-то (опять же, имена атрибутов начинаются с чего-то, а не с их значений!). Например, TinyMCE имеет тенденцию добавлять пользовательские атрибуты к сохраняемым им элементам, например "mce_style"
, "mce_href"
, "mce_bogus"
и т. Д. Я хотел бы иметь что-то вроде селектора CSS3 для значений атрибутов, [attr^="mce_"]
, , но не для значений, имена атрибутов.Как получить все атрибуты HTML, которые начинаются с чего-то (имена атрибутов, * не * их значения!)
Конечно, я могу перебирать все узлы DOM и их атрибуты и проверять их один за другим, но мне было интересно, есть ли более эффективный способ.
Пожалуйста, не давайте мне ответы на TinyMCE, я уверен, что есть флаг, который предотвратит использование TinyMCE для этих атрибутов, но вопрос является общим.
У меня такое ощущение, что вам придется либо перебирать каждый элемент, и просматривать каждый из атрибутов. Даже 'document.querySelectorAll()' не имеет параметра 'attribute-name-begin-with'. Интересный вопрос. –
Я ничего не знаю о TinyMCE, но если есть способ идентифицировать элементы, у которых есть * любой * такой атрибут, тогда вы можете, по крайней мере, сузить свой поиск до подмножества, а затем посмотреть на каждый атрибут подмножества, который будет гораздо быстрее, чем смотреть на весь дом. То есть, есть ли какой-то атрибут, который всегда будет добавлен к одной из ваших целей? Если да, то сначала ищите это. –
@jamietre Да, что касается TinyMCE, вы можете предположить, например. что 'mce_href' всегда будет применяться к элементам' a', поэтому вы можете сузить свой поиск. Но, как я сказал в последнем предложении, я не ищу ответы на TinyMCE, я бы предпочел иметь общее решение, и, судя по ответам, которые я получил до сих пор, нет другого пути, кроме как повторять все элементы и их атрибуты. Питти. – AsGoodAsItGets