我有以下标记
<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']
任何帮助都会非常值得赞赏。
答案 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