Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript OnClick事件仅获取第一个动态创建的行/id_Javascript_C#_Jquery_Html_Asp.net Mvc - Fatal编程技术网

Javascript OnClick事件仅获取第一个动态创建的行/id

Javascript OnClick事件仅获取第一个动态创建的行/id,javascript,c#,jquery,html,asp.net-mvc,Javascript,C#,Jquery,Html,Asp.net Mvc,我有一个表格,如果X有一个值,则显示X,否则,添加一个链接,单击该链接将显示一个文本框,用户可以在其中输入值。我动态地为链接和文本框分配ID/类,但当我运行应用程序时,每次单击任何链接似乎都只触发第一行。我输入警报以显示正在单击的行,并且我总是得到第一行。查看浏览器DOM explorer,我可以看到每一行都有自己唯一的ID。如何让每个OnClick事件获取正确的对应ID C#/Razor代码: <td> <a href="#" class="unmapped"

我有一个表格,如果X有一个值,则显示X,否则,添加一个链接,单击该链接将显示一个文本框,用户可以在其中输入值。我动态地为链接和文本框分配ID/类,但当我运行应用程序时,每次单击任何链接似乎都只触发第一行。我输入警报以显示正在单击的行,并且我总是得到第一行。查看浏览器DOM explorer,我可以看到每一行都有自己唯一的ID。如何让每个OnClick事件获取正确的对应ID

C#/Razor代码:

 <td>
      <a href="#" class="unmapped" onclick="UnmappedClick()" id="@string.Format("tr{0}",i)">Unmapped</a>
      <input type ="submit" class="editAction hidden" value="@string.Format("tr{0}",i)" name="action:ChangeToEditSubAction" />
      <input type="hidden" name="@Html.Raw("EntityMapping.EMREntityID")" value="@Html.Raw(Model.DisplayResults[i].EMREntityID)" />
      <span class="@string.Format("tr{0}accountTxtBox",i) hidden">@Html.TextBoxFor(m => m.EntityMapping.AssignedHOAccountID)</span> </td>

您可以使用“this”关键字从onclick事件传递参数

或者,如果有必要,将整个控制权移交给

onclick="UnmappedClick(this)"

可以使用“this”关键字从onclick事件传递参数

或者,如果有必要,将整个控制权移交给

onclick="UnmappedClick(this)"
你可以试试这个

$(this).attr('id') // use this
而不是

$(".unmapped").attr('id')
当您单击时,这将为您提供当前元素id。您可以尝试此操作

$(this).attr('id') // use this
而不是

$(".unmapped").attr('id')
这将在单击时为您提供当前元素id,正如您所看到的,使用
$('.class')
将返回该类中所有元素的列表。当您使用
$(“.unmapped”).attr('id')
时,总是会得到列表中第一个元素的值,这就是为什么总是得到第一行

var txtBox=$(“.editAction”).val()也会发生同样的情况。使用
$(actTextBox).removeClass(“隐藏”)您将从所有匹配的元素中删除隐藏的类

要获取元素的id,可以根据onclick属性使用以下代码使用
onclick=“unmapped(this)
onclick=“unmapped(this.id)”

function unmapped(element) {
    var id = $(element).attr('id')
    alert(id)
}

function unmapped(id) {
    alert(id)
}
您可以查看它们的运行情况。

正如您所看到的,使用
$('.class')
将返回该类中所有元素的列表。当您使用
$(“.unmapped”).attr('id')
时,您将始终获得列表中第一个元素的值,这就是为什么始终获得第一行的原因

使用
var txtBox=$(“.editAction”).val();
也会发生同样的情况。使用
$(actTextBox.removeClass(“hidden”);
将从所有匹配的元素中删除隐藏的类

要获取元素的id,可以根据onclick属性使用以下代码使用
onclick=“unmapped(this)
onclick=“unmapped(this.id)”

function unmapped(element) {
    var id = $(element).attr('id')
    alert(id)
}

function unmapped(id) {
    alert(id)
}

您可以查看它们的运行情况。

我刚刚发出了一个警报,并得到了“未定义”。您能在函数调用“onclick=”unappedclick(this)”中传递“this”吗'并尝试在函数'UnmappedClick(this){}'中获取它。我尝试传递'this'并获得此错误。“对标识符使用关键字无效”请尝试此,在onclick`unappedclick(this.id)处添加`和
函数unappedclick(id){alert(id);写下您的自定义逻辑//}
OMG,它起作用了!!你是冠军!非常感谢你!!我刚刚发出了一个警告,得到了“undefined”。你能在函数调用“onclick=”unappedclick(this)”中传递“this”吗'并尝试在函数'UnmappedClick(this){}'中获取它。我尝试传递'this'并获得此错误。“对标识符使用关键字无效”请尝试此,在onclick`unappedclick(this.id)处添加`和
函数unappedclick(id){alert(id);写下您的自定义逻辑//}
OMG,它起作用了!!你是冠军!非常感谢你!!谢谢就这么做了。运气不好:(仍然提醒“未定义”谢谢。只是这样做了。运气不好:(仍然提醒“未定义”