这就是我想要得到的:当你点击#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 +'">');
});
});
这里很少有问题:
-
id
应该是唯一的,您有许多具有相同 id 的元素,请将其更改为类。 -
您的问题是由以下原因引起的:
$("a#edit").click(function() { $(this).preventDefault(); ---> there is no preventDefault method on this ... });
您需要将其更改为:
$("a#edit").click(function(e) {
$(e).preventDefault();
...
});