Frage

Ich brauche eine Funktion, um alle Elemente mit einem benutzerdefinierten Attribute auszuwählen, und nehmen Sie ihren Namen und Wert. zum Beispiel:

<input type="text" my:name="koni" my:age="20" my:city="New York" />

Beachten Sie, dass meine ist immer die gleiche, aber das hinter nicht. in meiner Funktion will ich dann sagen:

var attr = //here should be the attribute (attr, or attr2)

und

var value = //here should be the value (test, or hello)

Wie kann ich das machen?

Edit: sorry, vergessen, die HTML einfügen

.

Ich möchte Schleife throu jeden Eingang, die eine solche benutzerdefinierte hat meine Attribute und den Wert und den Schlüssel in einem Array erhalten. Für dieses Beispiel sollte, ich habe:

key = name, Wert = koni

und

key = Alter, Wert = 20

...

War es hilfreich?

Lösung

Ich glaube nicht, dass es eine einfache Möglichkeit, dies in einem einfachen swoop mit einem jQuery-Selektor zu tun, da Sie nicht wissen, den genauen Namen des Attributs Sie suchen. (Sie nur seinen Präfix kennen.) Also, vielleicht könnten Sie einfach eine Schleife durch alle Eingänge und zu Fuß durch die Attribute für beliebige Matches überprüfen?

$('input').each(function() {
    var result = {};                                // to hold any results we might find
    var attrs = this.attributes;                    // this array is provided by the DOM
    for (var idx in attrs) {
        var attrName = attrs[idx].name;
        if (/^my:/.test(attrName)) {                 // must start with this hardcoded pattern
            var key = attrName.substring(3);        // skip first 3 chars
            var value = $(this).attr(attrName);
            result[key] = value;
        }
    }
    // do something with your result obj here...
    if (result['name']) {
        alert('found input with my:name of ' + result['name']);
    }
});

Ich bin die Ergebnisse in einem Objekt anstelle eines Arrays setzen (was mehr Sinn zu machen scheint), aber diese sollten Sie die allgemeine Idee geben, sollten Sie diese Pflege überhaupt zu verfeinern.

Viel Glück!

Andere Tipps

Sie sollten in der Lage sein, um

<div cheese="brie">foobar</div>

mit

var items = $("div[cheese]");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top