我想遍历DOM元素列表(复选框)并继续下去,只要这个列表已定义。元素是'c1r1','c1r2','c1r3'等。一旦我遇到一个未定义的元素,我就停下来。该问题似乎是使用DOM元素的typeof。在DOM元素上使用Javascript的typeof来检查未定义的(IE问题)
这里是有问题的代码:
function domIsDefined(idString){
alert(idString);
var isItDefined = (typeof $(idString) != 'undefined');
alert(isItDefined);
return isItDefined;
}
...
for(i=1; domIsDefined('c1r' + i); i++){
if($('c1r' + i).checked==true){
// do stuff
}
}
问题的关键是这一行:
var isItDefined = (typeof $(idString) != 'undefined');
的问题,因为我发现,是typeof运算$(idString)总是返回对象,无论是否定义。有没有什么好办法做这种事情?我想我会尝试一下,并尽早检查.checked属性,但那会让人感到恶心。
你使用的是什么库? – 2010-11-16 17:54:53
是否有任何特定的原因,你不能使用单一的DOM方法,即getElementsByTagName('输入')和迭代节点集合获得所有的checboxes?或者,如果你使用jQuery,只是'$(':checked')。each(function(){/ * do stuff * /});' – pawel 2010-11-16 17:58:09
这是使用原型,对于混淆抱歉。我应该澄清一点。 – jtpereyda 2010-11-16 18:02:27