下記のソースは、liの親要素を取得している所です。
html
1<div id="a"> 2<ul id="m"> 3<li>aa</li> 4<li>aa</li> 5<li>aa</li> 6</ul> 7</div>
javascript
1var ul_id = document.getElementById("m"); 2var elem = ul_id.parentNode; 3console.log(elem.id);//a 4console.log(elem)//HTMLのソースが表示される。 5console.log(elem.length);//undifinedと表示される。
下記のソースは、liの数を取得している所です。
html
1<ul id="n"> 2<li>aa</li> 3<li>aa</li> 4<li>aa</li> 5</ul>
javascript
1var ul_id = document.getElementById("n"); 2//上記で取得した#ul_id内の要素の数をli_lengthに代入。.lengthを外すと#ul_idの子要素のみがリストアップされる。 3var li_length = ul_id.children.length; 4console.log("ul",ul_id,"liの数",li_length);//3
elemの前に付いている.idは、今回の場合、親要素のidを指し.lengthの場合は、liの数を指しています。ここで二つ疑問なのですが、ある子ノードの親ノードを指すelemプロパティと子要素のリストを返してくれるchildrenプロパティのあとにつく.idと.lengthは、何者ですか。
メソッドのあとにプロパティを指定できたり、jqueryオブジェクトを返すメソッドを繋げたりするメソッドチェーンは、知っておりますがプロパティのあとにプロパティが付く(elem.idやul_id.children.lengthなど)ものは知りませんでした。いったい何者なのでしょうか。
また、elemプロパティでも.lengthが使えるのかと思ったら使えませんでした。parentNodeでは、使えずchildrenでは使えるみたいですが、いったい何が使えて何が使えないのでしょうか。
○○は.lengthを使える、■■は、.lengthを使えない、などのように早見表のようなものは無いのでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。