所以我试图收到特定ID的元素文本。在我的Javascript文件中Ih ave这段代码:
var amount = 2;
for (var i = 0; i < amount; i++)
{
$("#b"+i).click(function() {
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var name = ($("#name"+i).text());
alert(name);
它一直警告一片空白。继承人我的php文件:
echo "<td id= \"name".$counter."\">".$values[$counter]."</td>
<td><button id= \"b".$counter."\">Show Table</button></tr>";
$counter++;
计数器基本上是0和1.但是每当我尝试在名称+ i处获取文本时它返回一个空白。有谁知道这个问题?
答案 0 :(得分:0)
您有一个闭包问题,当您单击处理程序时,i
的值将为2。您可以通过将计数器作为参数传递给click事件来阻止这种情况。
var amount = 2;
for (var i = 0; i < amount; i++)
{
$("#b"+i).click(i, function(e) {
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var name = ($("#name"+e.data).text());
alert(name);