【问题标题】:Javascript: How do I allow a loop to change an id?Javascript:如何允许循环更改 ID?
【发布时间】:2016-07-29 14:35:51
【问题描述】:

这是我的代码块。

var events = new Array(4);

for (var j=3; j<events.length; j++){
    events[j];
    aA.setAttribute('href', '#events(j)');    
}

我希望在调用函数后将 events(j) 更改为 3,并允许它的增量为 1。问题是,#events(j) 中的 'j' 被读取为文本字符,不会将其作为数字插入。如何更改我的代码来解决这个问题?

【问题讨论】:

  • aA.setAttribute('href', '#events(' + j + ')');
  • 如果你只改变数组中的最后一个元素,为什么还要循环呢?
  • 我不明白为什么你有events[j] 或者aA 是什么,也许你的意思是events[j].setAttribute('href', '#events('+j+')');?这也不会改变ID
  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: javascript arrays loops


【解决方案1】:

events[j]; 此处为空白语句;它完全没有任何作用。你正在读取数组中的一个值,但没有对它做任何事情。

'#events(j)' 被解释为字符串;注意它周围的引号。要使用 j 的值而不是字母,您需要将其移到字符串之外并将它们连接起来,这样:

aA.setAttribute('href', '#events(' + j + ')'); // The string '#events(', then the value of j, then a closing brace

【讨论】:

    【解决方案2】:

    如果您所做的只是更改元素的 href 以匹配数组的最后一个索引的编号,则可以删除 for 循环并将其替换为一行代码:

    var events = new Array(4);
    
    aA.setAttribute('href', '#events(' + events.length - 1 + ')'); 
    

    【讨论】:

      【解决方案3】:

      不确定您要在这里实现什么,但如果您想在 event() 调用中使 j 动态化,您应该使用加号 + 符号将变量与字符串连接起来,因为它现在是(由引号)它将被视为字符串j

      aA.setAttribute('href', '#events('+j+')');
      

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2015-01-21
        • 2014-01-09
        • 1970-01-01
        • 1970-01-01
        • 2014-09-01
        • 1970-01-01
        • 2021-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多