DOMの基礎セレクタを仕上げ
注:擬似配列インデックスであり、そして唯一の長さを有することができるDOMセレクタリターンが配列型であり、アレイの他の方法アレイが使用されていません!
A:セレクタでDOM
1.getElementById(ID)//要素ID指定された要素取得 2.getElementsByTagNameを()//同じ要素のノードのリストを取得し、タグ名によって選択された要素は、戻り値は配列である ことにより得られる3.getElementsByName()//名前値戻り値が配列要素は、通常、入力値の名前を取得するためにも使用される )4.getElementsByClassNameを(//クラス名で要素を取得し、戻り値(HTMLセット)アレイnは
ヒント:これは、拡大にその基盤の上に戻って、4つのセレクタの基本であります
2:ES5セレクター:ちょうど2、しかし、強力な(オブジェクトのすべてのメソッド)
注意:互換性は、自分自身をテストします
1:document.querySelectorは(); //セレクタのすべてのタイプを取得しますが、唯一の戻り値を取得する単一の要素であります
開発:obox =ドキュメント:querySelectorセレクタ文字列の最初のセレクタに一致するDOM要素の子要素を返す取得する場合、一致するものが、ヌルが返されていない、などの括弧、直接CSSスタイル・セレクタを使用してもよいです。 querySelector( "#ボックス> H2");
2:document.quertSelectorAll(); //セレクタのすべての種類を取得し、ある擬似リターンアレイ
開発:同上は、それが一致するすべての要素のリストを返すことを除いて、nodelistとの集まりですが、非ライブ(リアルタイム更新として理解されることはありません)
今回の買収、それは深い理解がより重要に必要とされます。
console.log(document.querySelectorAll( '#のcontaniのDIV '))
querySelectorAllは子孫の子孫セレクタを取得すると、どのくらいのリターン、(「div要素div要素のdiv」)のような
注:querySelectorAllもう一つのポイントについて注意すべきは、このです:セレクタ文字列は「div要素div要素」の時間である場合にのみquerySelectorAll場合(例:dom.querySelectorAll(「div要素divの」) )、一致する要素は、DOMを含み、それはDOM要素とそのサブ要素は、DOMをマッチされるのdiv divの親子構造を構成する場合と言うことですへ。
EG:dom.querySelectorAll(DIV DIV DIV); dom.querySelector(contani).querySelectorAll(DIV DIV); // div要素divの親子構造は、DOM要素に一致するとみなさ元のdivを構成し、dom.querySelectorこの時間(contani).querySelectorAll(DIV DIV) ; dom.querySelector(contani).querySelectorAll(DIV)に相当する ; DIV要素はcontaniの子孫が選択されます
補足:非ライブ(リアルタイムに更新されていない)、getElementsTagName上の();とdom.querySelectorAll();
在获取基础选择中选择器,有个getElementsTagName();获取标签(元素)选择器,这个标签选择器获得节点集合(列表)是实时更新得到,
dom.querySelectorAll();不是实时更新的;下面测试一下,当插入了一个新的节点后,获取到的原选择器否会更新;
从上面的测试中可以看出,当追加了新的节点的时候,querySelector();获取的节点集合并没有刷新,而getElementsTagName();获取的html集合是刷新的
有人会问,明明用的是className()测试的,跟tagName()有什么关系呢?因为如果直接用tagName是没有办法直接获取到box里面的div的,这时候委婉的用className来测试一下,可以得出同样的效果,读者也可以自行测试一下。
补充两点:这两个都是dom的属性,不是方法
根据父级,选择子级:
oDiv.children; //返回一个伪数组
根据子级,选择父级:
oSpan.parentNode; //返回一个元素