所以我试图接收一个特定ID元素的文本。在我的Javascript文件中,我有以下代码:
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它返回一个空白。有人知道这有什么问题吗?
您有一个闭包问题,当您单击处理程序被触发时,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);