2016-11-11 4 views
2

私はすべてのクエリセレクタは第二のクラスのために働いていない理由を

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
</head> 

<body> 
<div class="B3">sgddsg</div> 
<div class="B5">dsgdsg</div> 
<script> 
var nam = document.querySelector('.B3,.B5'); 
nam.style.width = '100px'; 
nam.style.height = '100px'; 
nam.style.backgroundColor = 'blue'; 
nam.style.color = 'white'; 

</script> 
</body> 
</html> 

ことを仕事にどのように多くのCSSクラスを持ってここにクラスB3は作業が、B5ない1行のコードでは、なぜすべてのソリューションです。

+0

「私は多くのCSSクラスを持っている」 - ものであり、 HTMLクラスはCSSクラスではありません。 CSSにはクラスがなく、クラスセレクタだけがあります。 – Quentin

+0

あなたのCSSの1つを投稿できますか?クェンティンが言ったように、CSSにはクラスがありません –

+0

@Alpha_Wing - CSS(問題のJSでの操作以外)は、この問題とは関係ありません。 – Quentin

答えて

4

querySelectorは、最初に一致する要素のみを返します。

あなたが複数の要素を一致させたい場合、あなたは結果を反復その後、querySelectorAllを使用する必要があります:

var nam = document.querySelectorAll('.B3,.B5'); 
 

 
for (var i = 0; i < nam.length; i++) { 
 
    var elem = nam[i]; 
 
    elem.style.width = '100px'; 
 
    elem.style.height = '100px'; 
 
    elem.style.backgroundColor = 'blue'; 
 
    elem.style.color = 'white'; 
 
};
<div class="B3">sgddsg</div> 
 
<div class="B5">dsgdsg</div>

7

querySelectorは、の最初の要素に一致する要素を返します。 すべてをに返す場合は、querySelectorAllが必要です。

querySelectorAll単一の要素を返さないため、need to deal with thatとなります。

関連する問題