我想遍历DOM元素列表(复选框),并一直持续到定义此列表。元素是“ c1r1”,“ c1r2”,“ c1r3”等。一旦我碰到一个未定义的元素,我就停下来。问题似乎是将typeof与DOM元素一起使用。

这是令人反感的代码:

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属性,但这令人恶心。

最佳答案

function domIsDefined(idString){
    return !!document.getElementById(idString);
}

10-08 16:21