162

属性が設定されdocument.querySelectorAllているすべてのチェックボックスに使用しようとしています。value

ページには設定されていない他のチェックボックスがあり、valueチェックボックスごとに値が異なります。ただし、ID と名前は一意ではありません。

例: <input type="checkbox" id="c2" name="c2" value="DE039230952"/>

値が設定されているチェックボックスだけを選択するにはどうすればよいですか?

4

3 に答える 3

293

querySelectorAll()次のように使用できます。

var test = document.querySelectorAll('input[value][type="checkbox"]:not([value=""])');

これは次のように変換されます。

属性「値」を持つすべての入力を取得し、空白ではない属性「値」を持っています。

このデモでは、空白以外の値でチェックボックスを無効にします。

于 2012-05-27T22:39:47.140 に答える
36

あなたの例では:

<input type="checkbox" id="c2" name="c2" value="DE039230952"/>

例の $$ を document.querySelectorAll に置き換えます。

$$('input') //Every input
$$('[id]') //Every element with id
$$('[id="c2"]') //Every element with id="c2"
$$('input,[id]') //Every input + every element with id
$$('input[id]') //Every input including id
$$('input[id="c2"]') //Every input including id="c2"
$$('input#c2') //Every input including id="c2" (same as above)
$$('input#c2[value="DE039230952"]') //Every input including id="c2" and value="DE039230952"
$$('input#c2[value^="DE039"]') //Every input including id="c2" and value has content starting with DE039
$$('input#c2[value$="0952"]') //Every input including id="c2" and value has content ending with 0952
$$('input#c2[value*="39230"]') //Every input including id="c2" and value has content including 39230

例を次のように直接使用します。

const $$ = document.querySelectorAll.bind(document);

いくつかの追加:

$$(.) //The same as $([class])
$$(div > input) //div is parent tag to input
document.querySelector() //equals to $$()[0] or $()
于 2019-05-27T14:58:02.813 に答える