0

ライブラリはもう必要ありませんが、純粋なjavascriptをスキップしてjQueryを学びに行ったので、まだ純粋なjavascriptを学ぼうとしています。とにかく、純粋な JavaScript についていくつか質問があります。

最初の質問:

var profile = document.getElementsByClassName("postprofile-details");
var details = profile.getElementsByTagName("dd");
    details[0].style.display = "none";

のエラーが発生し続けます

TypeError: Object #<NodeList> has no method 'getElementsByTagName'

これについてどうすればいいですか?

基本的に上記と同じコードに関連する次の質問ですが、jQuery には が.prepend()あり.append()、上記に追加の HTML を挿入するにはどうすればよいvar profileですか?

3番目で最後の質問

この種の問題を解決したいと思います。代わりにループ関数を学習してきましたが.each()、これが私が思いついたものですが、エラーが発生しています

var a = document.getElementsByClassName('postprofile-details');
   for (var i =0; i<a.length; i++) {
           a[i].getElementsByTagName('dd').style.display='none';
   }

当面の質問は、for ループ関数内でループを選択していることを実際に確認するにはどうすればよいかということです。私はしますか

A ) a[i].getEle...

また

B ) a.getEle...

これらの質問に対する回答は役に立ちます。jQuery の使用にうんざりしています。

以下の回答とコメントで

これ書けるか見てみよう

var profile = document.getElementsByTagName('postprofile-details');
for (var i=0; i<profile.length; i++) {
  var dd = profile[i].getElementsByTagName('dd');
  dd.style.display='none';
  var newEle = document.createElement('div');
  newEle.id = 'toggle';
  profile[i].appendChild(newEle);
 }

コードに問題がある場合はお知らせください。ありがとうございます。

4

1 に答える 1

2

TypeError:オブジェクト#にはメソッドがありません'getElementsByTagName'

次を使用する必要があります。

profile[index].getElementsByTagName("dd");

getElementsByTagName目的のノードでは、ノードリストで使用できません。

上記の同じコードに関連する次の質問は、基本的にjQueryに.prepend()と.append()があることを知っているので、上記のvarプロファイルに追加のHTMLを挿入するにはどうすればよいですか?

profile[index].appendChild(newNode);

最後の答え:

最初の答えとして、すべてのnodeList getElementsByTagName\getElementsByClassNameが返すものを繰り返す必要があります。

于 2013-03-19T20:19:45.587 に答える