Javascript切换功能

时间:2011-10-05 04:21:57

标签: javascript toggle

我目前在网站上使用以下代码,以便在点击链接时通过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 ...
}

我希望这是有道理的。

2 个答案:

答案 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之前清除它们。