2

我有一个在单击按钮时调用的函数。我想遍历 dom 以到达一个隐藏的输入字段,该字段包含一些我需要访问的存储数据。

按钮

<button class="btn btn-small btn-danger delete-video-btn" onclick="delete_video()"><span class="icon-remove"><i> </i></span>Delete Video</button>   


JavaScript

function delete_video() {
    alert('delete video is running');
    var thisUniqueID = jQuery(this).parent().parent().parent().find('input[name="uniqueVideoID"]').val();
    alert(thisUniqueID);
    //alert("Are you sure you want to delete this video?");
}


但就目前而言,在我的 jquery 中使用 (this) 并没有按预期工作。如果我要像这样设置它,它会起作用,但这不适用于我设置的代码。

这有效,但不是我需要的

jQuery('.delete-vide-btn').click(function() {
  var thisUniqueID = jQuery(this).parent().parent().parent().find('input[name="uniqueVideoID"]').val();
  alert(thisUniqueID);
})      

当函数运行而不使用 .click 函数时,如何让它找到正确的元素并存储数据?

4

3 回答 3

4

你可以这样做 :

onclick="delete_video.call(this)"

并且不更改您的代码。

这里有一个例子

于 2013-09-10T17:49:52.797 回答
2

您需要将“this”的上下文传递给函数:

onclick="delete_video(this)"

然后....

function delete_video(something) {
    $this = something;
    ...
}
于 2013-09-10T17:46:31.353 回答
0
Try this function  

  function delete_video() {
        alert('delete video is running');
        var thisUniqueID = jQuery('.delete-vide-btn').parent().parent().parent().find('input[name="uniqueVideoID"]').val();
        alert(thisUniqueID);
        //alert("Are you sure you want to delete this video?");
    }
于 2013-09-10T17:49:43.620 回答