JS大神帮忙看下这段代码为什么东东

JS大神帮忙看下这段代码为什么错误

function setImagePreview(id){
var imgId = id + "show";
        var docObj=document.getElementById(id);
        
if(document.getElementById(imgId)){
if(docObj.files[0] != null){
document.getElementById(imgId).src = window.URL.createObjectURL(docObj.files[0]);
}
}else{
$('.img_box').append('<img id='+imgId+'/>');
alert(window.URL.createObjectURL(docObj.files[0]));
       document.getElementById(imgId).src = window.URL.createObjectURL(docObj.files[0]);
}

         return true;
        }

动态传ID  为什么第一个if就不能正常判断 ?这种传参方式对么
------解决思路----------------------
docObj 有值么? 值是什么?
------解决思路----------------------
if里面放boolean类型的值啊,你第一个if里面的document.getElementById(imgId)得到的是这个节点的val吧。
------解决思路----------------------
引用:
这样做可以的 至少可以判定元素是否存在 如果id不用参数传 改成写死的固定值 就是可以运行的 大神这是什么道理

你在传参的时候 在外面就把ID拼接好传进来看看呢.
2Lif里 document.getElementById(imgId)不是得到这个节点的val值 是代表如果有这个节点就进入这个 if没这个节点就不进入这个if
------解决思路----------------------
 if(document.getElementById(imgId)) 你的第一个if判断没写完啊,这样写自动默认为true。但是你得到的肯定不是boolean类型的,你这个imgid 得到的是val()

相关内容推荐