JQuery为元素返回空白文本


JQuery returns blank text for an element

所以我试图接收一个特定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);