在HTML中将ID设置为增量变量

时间:2015-01-20 22:41:16

标签: javascript html accordion

这是一个很长的镜头,因为我不确定是否可以做到这一点,所以如果不能,那么任何有关方法的建议都会受到赞赏。

我的HTML中有一个手风琴,每个手风琴都包含我的XML文档的一部分。为了让手风琴设置部分并应用它们来打开和关闭每个部分,我需要为每个部分分配一个数字变量作为ID。我在HTML中的手风琴代码如下:

<article class="accordion">

        <section id="start">

            <h2 id="title"><a href="#start"></a></h2>
            <p id="text"></p>
            <p id="quote"></p>
            <p id="link"></p>

            <b id="foot"><p id="date"></p></b>
            <b id= "foot"><p id="tags"></p></b>

        <section>
        </article>

每个部分都在我的JavaScript文件中设置,该文件正确地为第一个数据附加数据,从其他地方查看输出,但是因为没有变量就无法点击它,因此不可见。 我的JavaScript包含,下面作为标题的片段,我想知道是否有办法在我的HTML中使用变量i?它们是单独的文件,而不是HTML文件中的JavaScript。

var count = 1;

    for(i=0; i<x.length;i++)
    {
        document.getElementById("start").id = count;

        title=(x[i].getElementsByTagName("postTitle")[i].childNodes[i].nodeValue);
        document.getElementById("title").innerHTML=title;

        count = count + 1;
    }

通过其他方式测试手风琴,我知道它有效,我只需要设置变量就可以让它在这里工作。

感谢。

2 个答案:

答案 0 :(得分:1)

我不能100%确定你要问的是什么,但这是一个公平的猜测,IMO。

使用jQuery,您可以使用.each()来定位包含父项的每个子元素。

$('.accordion').each(function(i) {
   $(this).attr('id', 'i' + i);
});

请注意,在您的示例中,您的元素已经分配了一个ID,这将覆盖现有的ID。

答案 1 :(得分:0)

这将覆盖任何设置id,不要忘记打开您的开发控制台以查看实际更改:http://jsfiddle.net/g2wf0gt4/

<div id="hello"></div>
<div id="hi"></div>
<div></div>
<div></div>
<div></div>

的javascript

(function() {
    var x = document.getElementsByTagName('div');
    for(i=0; i<x.length; i++) {
        x[i].setAttribute('id', [i]);
        console.log(x[i]);
    }   
    })();