0

おそらくそれは非常に基本的なことですが、radios.lengthプロパティに問題があります。私はそのようないくつかの入力があります:

<input type="radio" name="name1" value="test1" checked='checked'/><br />
<input type="radio" name="name2" value="test2" checked='checked'/><br />

radios.lengthプロパティにアラートを送信すると、回答として常に0が返されます。誰かが理由を説明できますか?

4

3 に答える 3

1

radios.lengthはDOMの有効なプロパティではありません。これら(この場合は入力されます)を見つけて、その上でlengthプロパティを使用する必要があります。

var radios = document.getElementsByTagName("input") ;

alert(radios.length) // this will alert the correct value

アップデート

ラジオボタンのみを選択するには、これを行うことができます

var radios = document.getElementsByTagName("input") ;
var checkBoxes = [];

for(​var i =0, len = radios.length; i< len;i++){
    if(radios[i].type === 'radio'){
        checkBoxes.push(radios[i]);
    }
};

console.log(checkBoxes)​

フィドルをチェック

また、jQueryを使用している場合は、スクリプトをDOMReadyハンドラーに含めることを忘れないでください。

jQuery

$('#radio1').attr('type') // Need to use the .attr() method

jQueryフィドル

于 2012-11-07T20:13:26.957 に答える
1

radiosブラウザで有効なオブジェクトではありません。DOMでを検索する必要がありますinputs

jQueryの使用:

$("input[type=radio]").length

あなたに与えるだろう2

生のJavaScriptでは、次のようなことができます。

document.getElementsByTagName("input") 

<input>しかし、これはあなたにすべての要素を与えるでしょう。

于 2012-11-07T20:07:58.877 に答える
1

document.querySelectorAll()を使用することもできます。cssセレクターで要素を取得でき、IE>=8を含むすべての主要なブラウザーでサポートされています。

document.querySelectorAll('input[type=radio]').length

http://jsfiddle.net/fNhmr/

https://developer.mozilla.org/en-US/docs/DOM/Document.querySelectorAll

于 2012-11-07T20:15:49.730 に答える