0
for (var i=0;i<x.length;i++)
 {
   var Topic = x[i].getElementsByTagName("text")[0].childNodes[0].nodeValue;
  var Content = x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue;
  document.write("<li class='withimage'> ");
  document.write(Topic);
  document.write("<button onclick='show(Topic)'></button>");
  document.write("</span><span class='time'>");
  var full_time = x[i].getElementsByTagName("created_at")[0].childNodes[0].nodeValue;
  var time = full_time.split("+");
  document.write(time[0]);
  document.write("</span></li>");

  }

我的功能是

function show(head)
{
document.getElementById("content").style.display="none";

document.getElementById("details").style.display="block";

document.getElementById("Heading").innerHTML=head;
}

但是在每次单击按钮时,我都会在变量“主题”中得到最终的迭代值

4

1 回答 1

0

这里的问题是您没有Topic为每个按钮传递对象。实际上,您传递的只是对象名称。因此,当您单击任何按钮时,它将搜索变量Topic,在这种情况下,该变量将是Topic您迭代中的最后一个对象。

你尝试这样的事情:

for (var i=0;i<x.length;i++)
 {
   var Topic = x[i].getElementsByTagName("text")[0].childNodes[0].nodeValue;
  var Content = x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue;
  document.write("<li class='withimage'> ");
  document.write(Topic);
  document.write("<button onclick='show(" + Topic + ")'></button>");
  document.write("</span><span class='time'>");
  var full_time = x[i].getElementsByTagName("created_at")[0].childNodes[0].nodeValue;
  var time = full_time.split("+");
  document.write(time[0]);
  document.write("</span></li>");

  }
于 2013-02-25T10:53:52.723 回答