2017-04-07 6 views
0

Ich versuche, einen jQuery-Selektor zu finden, der jedes Element mit einem bestimmten Attributwert erhält - nicht notwendigerweise Attribut, nur der gleiche Attributwert. Zum Beispiel, welcher jQuery Selector würde jeden der folgenden Punkte aufgreifen?jQuery - Wählen Sie mehrere Elemente mit dem gleichen Attribut Wert

<h1 name="test"><h1> 
<a id="test"></a> 
<p data-attribute="test"></p> 

Alles, was ich denken kann, ist $("*").attr("*", "test") zu versuchen, aber das funktioniert nicht.

Antwort

1

Dies ist eine sehr merkwürdige Frage. Sie können dies tun, indem Sie die Attribute jedes dom-Attributs durchlaufen, aber ich würde stattdessen empfehlen, Ihren HTML-Code neu zu strukturieren, sodass Sie [data-test=true], ein Datentest-Attribut mit dem Wert true, verwenden können.

$("*").filter(function() { 
 
    flag = false; 
 
    $.each(this.attributes, function(i, attrib){ 
 
    if (attrib.value == "test") { 
 
     flag = true; 
 
    } 
 
    }); 
 
    return flag; 
 
}).css("background","red");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h1 name="test">a<h1> 
 
<a id="test">b</a> 
 
<p data-attribute="test">c</p> 
 
<p>don't highlight</p>

+0

Leider habe ich keine Kontrolle über den HTML, wie es von einem CMS erstellt wird ist. Aber genau das habe ich gesucht - danke! –

Verwandte Themen