我目前在网站上使用以下代码,以便在点击链接时通过ajax填充内容,并在第二次点击时再次隐藏。
执行此操作的javascript函数(删除了不相关的代码):
function showNews(id){
if(CONDITION){
ajax(); //Not actual code, original code just grabs content via ajax and puts it into an existing empty div using innerHTML.
}
else if (CONDITION) {
document.getElementById('div'+id).innerHTML = ''; // Empties div again, in effect hiding it from view.
}
}
目前工作正常,因为当点击每个链接时,相应的DIV会填充内容,再次点击时内容会消失。但是,我可以同时打开尽可能多的div。我希望它能够工作,这样当一个新的div被填充时,剩下的就被清空了。
所有div都有这样的ID:id =“div#”,其中#被替换为唯一的ID号。
所以我需要做这样的事情:
function showNews(id){
if(CONDITION){
ajax(); //Not actual code, original code just grabs content via ajax and puts it into an existing empty div using innerHTML.
**FOR ALL DIVS THAT HAVE AN ID THAT STARTS WITH 'div', BUT DOES NOT MATCH CURRENT ID VARIABLE, SET innerHTML = ''**
}
... code removed from original ...
}
我希望这是有道理的。
答案 0 :(得分:1)
document.getElementsByTagName('div')
是一个数组(实际上是所有div的节点列表)。
您可以使用.id
检查其ID。
试试这个:
var divs = document.getElementsByTagName('div');
for(var i = 0; i < divs.length; i++)
if( (divs[i].id.substr(0,3) == 'div') && (divs[i].id != ('div' + ID)) )
divs[i].innerHTML = '';
divs[i].id.substr(0,3) == 'div'
检查div id
是否为divSomething
。
divs[i].id != ('div' + ID)
为divID
提供了例外。
答案 1 :(得分:0)
也许你可以为每个div赋予相同的名称(因为名称与ID不同,不必是唯一的)然后使用document.getElementsByName来查找&amp;在填充当前div之前清除它们。