gpt4 book ai didi

javascript - Jquery 获取和设置值

转载 作者:行者123 更新时间:2023-12-02 14:11:30 25 4
gpt4 key购买 nike

我有这段代码可以从 td 获取值并将其传递给其他 mvc View 。但不知何故我无法获得隐藏类属性的值?

<tr onclick="textover(this)">
<td>
@ul.Email
</td>
<td>
@ul.Fullname
</td>
<td>
@ul.Company.Name
</td>
<td class="hidden">
<input type="hidden" name="UserId" id="UserId" value="@ul.Id" />
</td>

Jquery

function textover(id) {
$('#Email').val($(id).find("td").eq(0).text().trim());
$('#Fullname').val($(id).find("td").eq(1).text().trim());
$('#Company').val($(id).find("td").eq(2).text().trim());
$('#IdNo').val($(id).find("td").text(3).trim());

最佳答案

这段代码.text(3),是坏人!

text 方法没有采用数组索引的重载!。所以这行代码应该崩溃!

使用带有索引的 eq 方法来获取项目不是很安全。如果明天您在中间再添加一个新的 td,现在您必须使用 eq 方法调用来修复一堆索引值,该怎么办!

为什么不使用指定name属性值的选择器?同样对于输入字段,您需要使用 val() 方法获取值。

var userId = $(id).find("input[name='UserId']").val();
alert(userId);
$('#IdNo').val(userId);

恕我直言,您可以为 td 提供一个 css 类,并将其用于您的 jQuery 选择,而不是依赖于索引。您也可以考虑以不显眼的方式执行 JavaScript。

<tr class="selectableRow">
<td class="email"> @ul.Email</td>
<td class="fullName"> @ul.Fullname </td>
<td class="companyName"> @ul.Company.Name
<input type="hidden" name="UserId" id="UserId" value="@ul.Id" />
</td>
</tr>

以及处理行单击事件的脚本

$(function(){
$("tr.selectableRow").click(function(e){
var email = $(this).find(".email").val();
var fullName = $(this).find(".fullName").val();
// do something with these
});
});

关于javascript - Jquery 获取和设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39522899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com