jQuery siblings()とchildren()の内部ソースを見た

よく出来ていると思います。 勉強になります。

siblings: function( elem ) {
	return jQuery.sibling( elem.parentNode.firstChild, elem );
},
children: function( elem ) {
	return jQuery.sibling( elem.firstChild );
},

そしてjQuery.sibling()の中身です! nodeTypeが1の場合はelementノードの意味です。 nはループに使われて、elemは除外する要素です。 例えばsiblings()の場合は自分自身を除外しています。 for文の書き方も覚えとこう、、 javaでのIteratorのhasNext()関数みたいな動きをしていますね。


	sibling: function( n, elem ) {
		var r = **;

		for ( ; n; n = n.nextSibling ) {
			if ( n.nodeType === 1 && n !== elem ) {
				r.push( n );
			}
		}

		return r;
	}

Share the post
Qihuan Piao

朴 起煥

東京で働いている「外人歴」9年のソフトウェア「ライター」。いつの間にか納豆が食えるようになり、これで日本に慣れきったと思いきやまだまだ驚きが続いてる。読んだり書いたりするのが好きで、自身の経験や本から得た「何か」をここに書き出してる。最近古本屋にハマってる。