2

DOMに次のようなテキストボックスがいくつかあります

<INPUT id=txtQuantity587117 />
<INPUT id=txtQuantity587118 />
<INPUT id=txtQuantity587119 />
<INPUT id=txtQuantity587111 />
<INPUT id=txtQuantity587112 />

要素はすべてネストされており、特定の親ノードの下にはありません。

「txtQuantity」で始まる ID テキストを持つすべての入力要素を選択する方法はありますか。

Jqueryではなく、javascriptを使用する方法が必要です。ありがとう。

4

3 に答える 3

6

最新のブラウザー (および IE8...現在検証済みdocument.querySelectorAll()) では、attribute-starts-withセレクターを使用できます。

var els = document.querySelectorAll("input[id^=txtQuantity]");
于 2013-05-02T16:30:49.090 に答える
4

Array.filter以下は、以外の「最新の」API 呼び出しに依存しないコードですdocument.querySelectorAll

var els = [].filter.call(document.getElementsByTagName('input'), function(el) {
    return /^txtQuantity/.test(el.id);
});

適切な shim を使用すると、これは MSIE 5.5 以降のすべてのブラウザーで動作するはずです。

http://jsfiddle.net/alnitak/9jEzj/を参照してください

于 2013-05-02T16:31:33.203 に答える
3

問題なし...

var inputs = document.getElementsByTagName("input");
var matches = [];

for(var i = 0; i < inputs.length; i++){
    var input = inputs[i];
    if(input.id.indexOf("txtQuantity") == 0){
        matches.push(input);
    }
}

//matches will be an array of the matched elements

これが実際の例です

于 2013-05-02T16:31:22.120 に答える