消除 HTML 中的警告

Eliminating warning in HTML

本文关键字:警告 HTML 消除      更新时间:2023-09-26

我正在创建 3 个 jsp 页面。每页有4个不同ID的方框(即第1页的方框1、方框2、方框3、方框4;第2页的方框5、方框6、方框7、方框8;第3页的方框9、方框10、方框11、方框12)。下面是第 1 页中的示例代码:

<div class="dragableBox" id="box1">CAT</div>
<div class="dragableBox" id="box2">DOG</div>
<div class="dragableBox" id="box3">HORSE</div>
<div class="dragableBox" id="box4">TIGER</div>

在每个页面中还有一个脚本。在脚本中,我故意使用上面的所有这些 id 作为函数的参数。下面是第 1 页中的示例代码:

dragDropObj.addSource('box1',true);
dragDropObj.addSource('box2',true);
dragDropObj.addSource('box3',true); 
dragDropObj.addSource('box4',true); 
dragDropObj.addSource('box5',true); 
dragDropObj.addSource('box6',true); 
dragDropObj.addSource('box7',true); 
dragDropObj.addSource('box8',true); 
dragDropObj.addSource('box9',true); 
dragDropObj.addSource('box10',true);    
dragDropObj.addSource('box11',true);    
dragDropObj.addSource('box12',true);    

必须这样做,因为据我所知,这是我的程序工作的唯一方法。我遇到的问题是每次程序启动时,都会出现一条警告: "id 为 box5 的源元素不存在"

尽管该程序仍然可以使用此警告正常工作,但我仍然想消除该警告。

我的问题是:如何阻止此类警告出现?HTML 中是否有一种错误捕获方法?

在添加元素之前检查元素是否存在。

if (typeof document.getElementById('box5') !== 'undefined'){
    // continue
}

试试这个:这将抓取页面上的所有"dragableBox",并在它们上运行"dragDropObj.addSource(...,true);",如果他们有一个id=box[x]而不使用JQuery:

boxes = document.getElementsByClassName('dragableBox');
for (i=0; i < boxes.length; ++i) {
  var id = boxes[i].id;
  if(id.substring(0,3)==='box')
    dragDropObj.addSource(id,true);  
}
if (document.getElementById('box1')){
    dragDropObj.addSource('box1',true);
    dragDropObj.addSource('box2',true);
    dragDropObj.addSource('box3',true); 
    dragDropObj.addSource('box4',true);
}
if (document.getElementById('box5')){
    dragDropObj.addSource('box5',true);
    dragDropObj.addSource('box6',true);
    dragDropObj.addSource('box7',true); 
    dragDropObj.addSource('box8',true);
}
if (document.getElementById('box9')){
    dragDropObj.addSource('box9',true);
    dragDropObj.addSource('box10',true);
    dragDropObj.addSource('box11',true); 
    dragDropObj.addSource('box12',true);
}

编辑:

更好的解决方案:

groupFirstMember = 1;
if (document.getElementById('box5')){
    groupFirstMember = 5;
}
else if (document.getElementById('box9')){
    groupFirstMember = 9;
}
for(i=0;i<4;i++){
    dragDropObj.addSource("box"+str(groupFirstMember+i),true);
}