javascript:(function() { document.title = "YuichirouのJavaScriptメモ"; })(); このページをアンテナに追加 RSSフィード

2006年9月27日

「子孫をIDで検索」にすごい違和感 21:58 「子孫をIDで検索」にすごい違和感 - javascript:(function() { document.title = "YuichirouのJavaScriptメモ"; })(); を含むブックマーク はてなブックマーク - 「子孫をIDで検索」にすごい違和感 - javascript:(function() { document.title = "YuichirouのJavaScriptメモ"; })(); 「子孫をIDで検索」にすごい違和感 - javascript:(function() { document.title = "YuichirouのJavaScriptメモ"; })(); のブックマークコメント

いきなりこんなこと言うのは失礼だと思うけど、g:javascript:id:tetsu23:20060803:1154481469にすごい違和感を感じます。


関数gchildは『element以下のidが一致するノード』のうち最初にヒットしたもの、関数gchildsは全部取ってくる関数。それはコード上間違いないです。

でもそれは、HTMLにおいてidとは何か、ってのを勘違いしているんです。


HTMLにおいて、idとはその文書中の一部分を指し示すユニークな識別子なんです。

"unique"――カタカナ語では「独特の」って意味でよく使うけど、元々の意味は「唯一の」。

つまり、あるidの値は1つのHTML文書中にただ1つしか存在しないはずなんです。


ちなみに、そのHTML文書にただ1つしかないというidを使ってノードを取り出す、getElementByIdという関数があります。

var hatena = document.getElementById("hatena");

idは唯一無二であり、何か特定のノードの下にある、というような限定は必要ありませんので、getElementByIddocumentのみが持つメソッドです。


ちなみに、おそらくid:tetsu23さんはHTML初心者から中級者によくある、idclassの混同を起こしていると思います。

idは1つのHTML文書中にただ1つ、ですが、classはいくらでも使えます。

よって、gchildやgchildsは、『element以下のclassが一致するノード』を検索するようにすればいいと思います。

tetsu23tetsu23 2006/09/28 14:27 あーなるほど。IDは一意なんですね。失礼しました。

CadenCaden 2011/12/17 14:47 No quseiton this is the place to get this info, thanks y'all.

akzicehtitcakzicehtitc 2011/12/18 23:29 5acmXt , [url=http://ubtwzmlnvghj.com/]ubtwzmlnvghj[/url], [link=http://wxrxpqczikll.com/]wxrxpqczikll[/link], http://dkmsvukylfrs.com/

djwpfwqjdjwpfwqj 2011/12/19 19:19 FzmryQ <a href="http://azttshbqfddf.com/">azttshbqfddf</a>

ゲスト



トラックバック - http://javascript.g.hatena.ne.jp/Yuichirou/20060927