0

特定のクラス名を持つ要素を取得できますが、その特定のクラス名を持つ要素の量の長さを取得できません。

子要素の特定のクラス名を持つ要素の数を取得するにはどうすればよいですか?

jsフィドル

document.getElementById('contact').onsubmit = function() {
    var children = this.children;

    for(var i = 0; i < children.length; i++) {
        if (children[i].className == 'req') {

            console.log(children[i]); //defined
            console.log(children[i].length); //undefined

        }
    }

    return false;
};
4

5 に答える 5

2

そのクラスの子要素の数を数えたいと思います:

document.getElementById('contact').onsubmit = function() {
    var children = this.children;
    var count = 0;
    for(var i = 0; i < children.length; i++)
        if (children[i].classList.contains('req'))
            count++;
    console.log(count+" of "+children.length+" have the class 'req'");
    return false;
};
于 2013-08-08T17:48:34.970 に答える
2

私はこれに対する簡単な解決策を自分で見つけました:

皆さんの考えを教えてください。

jsフィドル

document.getElementById('contact').onsubmit = function() {
    var req = this.getElementsByClassName('req').length;
    console.log(req);
    return false;
};
于 2013-08-08T17:55:52.160 に答える
0

値を取得するために使用children[i].value.lengthします。

jsフィドル

于 2013-08-08T17:48:22.270 に答える
0
var arr = Array.prototype.slice.call( children )

申し訳ありませんが、これは私が意味したものですhttp://jsfiddle.net/e4CQu/15/

于 2013-08-08T17:51:57.113 に答える
0

lengthDOM 要素にはプロパティがありません。その中に含まれる文字数を取得しようとしている場合は、代わりに次のように のlengthプロパティを使用する必要がありますvaluechildren[i].value.length

于 2013-08-08T17:54:08.070 に答える