2016-03-16 17 views
5

data-foo-bar-* modeliyle eşleşen özniteliklere sahip tüm öğeler nasıl bulunur, ör. Benim deneyinBir modelle eşleşen bir özelliğe sahip bir öğe bulun

Uncaught SyntaxError: Failed to execute 'querySelectorAll' on 'Document': '[data-foo-bar-*]' is not a valid selector.

+2

Olası yinelenen [kısmi öznitelik temelinde HTML bul] (http://stackoverflow.com/questions/12199008/find-html-based-on-partial-attribute) –

+1

@IvankaTodorova bu soru tamamen [tag: jquery] odaklı . – Gajus

+0

Bu yanıt zaten burada: http://stackoverflow.com/a/16791596/4523369 –

cevap

1

Belki tüm DOM öğelerinde yineleme ve en iyi yaklaşım olmayabilir bu özellik için arıyorlar ama burada:

function querySelectorPattern(regex, element) { 
    var elements = document.getElementsByTagName(element), 
    found, 
    regexp = new RegExp(regex); 
    for (var i = 0; i < elements.length; i++) { 
    var attributes = elements[i].attributes; 
    for (var k = 0; k < attributes.length; k++) { 
     if(regexp.test(attributes[k].nodeName)) { 
     console.log(elements[i]); 
     } 
    } 
    } 
} 
foo-bar-* desenli document.querySelectorAll kullanma

<div data-foo-bar-id="" /> 

hata verir

Ve hızlı bir demo: https://jsfiddle.net/1rsngvy8/

+0

Bu, DOM API sınırlamaları dikkate alındığında uygun bir çözüm gibi görünüyor. – Gajus

İlgili konular