标记<a> get next hidden field</a>

时间:2012-12-24 18:08:51

标签: jquery hidden next

我有以下标记

  <td>
       <a id="lbtnDelete" onclick="deleteFile(this); return false;" runat="server" class="silverbutton smallbutton normal">
            <span class="left">
                  <span class="right">Delete</span>
            </span>
       </a>
       <asp:HiddenField runat="server" ID="hidDownloadId" />
  </td>

function deleteFile(element)
{
    var currEl = element;
    var downloadId = currEl.next().value;
}

当用户点击“lbtnDelete”链接时,我调用了deleteFile(this)函数。在这个函数中,我应该得到隐藏输入的值 - hidDownloadId。我该怎么做?我已经尝试了

currEl.next().value;

但是在Chrome中我遇到了一个错误,例如“对象没有方法next()”。另一种尝试是

currEl.parent().find('[type=hidden]')
[Exception: TypeError: Object has no method 'parent']

任何帮助都会非常值得赞赏。

2 个答案:

答案 0 :(得分:3)

您需要在元素之外创建jquery对象,然后才能使用jquery方法。

var currEl = $(element);
var downloadId = currEl.next().val();

但是既然你采用jquery方式,你也应该停止使用内联事件属性并使用jquery进行绑定..

所以

  <td>
       <a id="lbtnDelete" runat="server" class="silverbutton smallbutton normal">
            <span class="left">
                  <span class="right">Delete</span>
            </span>
       </a>
       <asp:HiddenField runat="server" ID="hidDownloadId" />
  </td>

$(function(){
    $('#lbtnDelete').click(function(e){
        e.preventDefault();
        var currEl = $(this),
            downloadId = currEl.next().val();

        // do whatever you want to do with downloadId here

    });
});

答案 1 :(得分:1)

尝试

function deleteFile(element)
{
    var currEl = $(element);
    var downloadId = currEl.next().val();
}

.next().parent()是jQuery方法,val()是等同于.value的jQuery