0

カスタム属性を持つすべての要素を選択し、その名前と値を取得する関数が必要です。例えば:

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

私はいつも同じですが、その背後にはないことに注意してください。私の職務では、次のように言いたいと思います。

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

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

どうすればそれを作ることができますか?

編集:申し訳ありませんが、HTMLを貼り付けるのを忘れました。

そのようなカスタム属性を持つ各入力をループして、配列内の値とキーを取得したいと思います。この例では、次のようにする必要があります。

キー=名前、値=コニ

キー=年齢、値= 20

..。

4

2 に答える 2

1

探している属性の正確な名前がわからないため、jqueryセレクターを使用して1回の簡単な急降下でこれを行う簡単な方法はないと思います。(プレフィックスしかわかりません。)したがって、すべての入力をループして、属性を調べて、必要な一致を確認することもできますか?

$('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']);
    }
});

結果を配列ではなくオブジェクトに入れています(これはより理にかなっているようです)が、これを改良する必要がある場合は、これで一般的なアイデアが得られるはずです。

頑張ってください!

于 2009-12-03T05:59:05.013 に答える
0

選択できるはずです

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

を使用して

var items = $("div[cheese]");
于 2009-12-02T16:35:02.547 に答える