-2

我有一个链接,当我点击它时,它应该选择一个 div p 标签内容并将 p 标签替换为文本框和以前存储的内容。

现在我的代码正在删除 p 标签并添加文本框,但它会立即删除文本框并插入 p 标签。用户按下回车后,我希望调用 ajax fn。

这是我试过的,

<a href="" id="den">DEN</a>
<div id="test">
<p id="x">I am doing good</p>
</div>
 $("#den").live("click", function () {
       var con = $("#test >p#x").html();
       $("#test > p#x").remove();
       $("#test > p#x").append('<textarea type="text" value='+con+'></textarea>');

}); 
        });
4

2 回答 2

3

删除后#x,它不在 DOM 中,因此附加它没有用。如果要替换元素的内容,请.html()改用。此外,<textarea>s 有文本内容,而不是value属性。

$("#den").live("click", function () {
    var con = $("#test >p#x").html();
    $("#test > p#x").html('<textarea type="text">'+con+'</textarea>');
});

请注意,由于元素 ID 必须是唯一的,因此选择器#test > p#x被严重过度指定,并且等同于 simple #x。还有一种更简单、更惯用的方法来完成整个任务:

$("#den").live("click", function () {
    $("#x").html(function (i, oldHtml) {
        return '<textarea type="text">'+oldHtml+'</textarea>';
    });
});

http://jsfiddle.net/mattball/PSV7A/

于 2013-03-22T17:22:55.963 回答
2

您不能在已删除的元素 JSFIDDLE中进行更改

笔记 。textarea 没有类型属性

和 。文本区域的设置值不会显示在框中

<a href="" id="den">DEN</a>
<div id="test">
<p id="x">I am doing good</p>
</div>
 $("#den").on("click", function () {
   $("#test > p#x").html('<textarea >' +  $("#test >p#x").html() +'</textarea>');
 return false;

});

于 2013-03-22T17:24:05.463 回答