Jquery获取和设置值

本文关键字:设置 获取 Jquery | 更新日期: 2023-09-27 18:07:08

我有这个代码,可以从td获取值,并将其传递给其他mvc视图。但不知何故我不能得到隐藏类属性的值?

<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());

Jquery获取和设置值

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

text方法没有接受数组索引的重载!所以这行代码应该会崩溃!

使用带有index的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    
  });    
});