07/04/30 20:04:24
>>899
要するに、MSXMLのnextNode()みたいなことをやりたいが、
IEでHTMLを扱う時にはそれらしい簡単な方法がないから困る、っつうことだな。
再帰とかDOM標準で遊んでもいいが、実用的に実行速度重視で書けば、次のようになる。
今つらつらと書き込んだだけでテストしてないので動くかどうか知らんがな。
/*@cc_on @if (1)
function nextTo (context, root, filter) {
var i;
var all_length;
var current;
var all = root.all;
i = context.sourceIndex - root.sourceIndex;
all_length = all.length;
while (i < all_length)
if (filter(current = all.item(i++)))
return current;
return null;
}
function isTD(n) {return /^TD$/i.test(n.nodeName);}
function nextTD(context, root) {return nextTo(context, root, isTD);}
@end@*/