jQuery 找不到父级



这就是我想要得到的:当你点击#edit jQuery在最近的tr中找到名为#collapse的td,并将其内容替换为具有前一个#collapse html的值的输入。我尝试了jsFiddle,但没有成功:http://jsfiddle.net/8PDdn/1/

谁能帮我得到我想得到的东西?

preventDefault()event对象而不是选定元素的方法之一,您应该改为为event对象调用它,也可以使用输入的blur事件在编辑后修改div标签的内容:

$(function() {   
    $("a#edit").click(function(event) {
        event.preventDefault();
        var currentTodo = $("#collapse");
        var cVal = currentTodo.html();
        currentTodo.html('<input type="text" name="description" value="'+ cVal +'">');
    });
    $(document).on('blur', '#collapse input', function(){
        $(this).parent().html(this.value)
    })
});

小提琴

    $(this).preventDefault();

这不是阻止默认事件的方式。您需要将事件传递给回调。

$(function() {
    $("a#edit").click(function(e) {
        $(e).preventDefault();
        var currentTodo = $(this).closest("tr").find("#collapse");
        var cVal = currentTodo.html();
        currentTodo.html('<input type="text" name="description" value="'+ cVal +'">');
    });
});

这里很少有问题:

  1. id应该是唯一的,您有许多具有相同 id 的元素,请将其更改为类。
  2. 您的问题是由以下原因引起的:

    $("a#edit").click(function() {
        $(this).preventDefault(); ---> there is no preventDefault method on this
       ...
    });
    

您需要将其更改为:

$("a#edit").click(function(e) {
        $(e).preventDefault();
       ...
    });

相关内容

  • 没有找到相关文章

最新更新