1

在 jQuery 中,我知道我们可以使用 替换对象的 HTML .html(html code here),也可以使用其中一种方法(appendappendToprepend等)来实现.html(...).

但是这两种方式有什么区别呢?

更新

我想我应该发布我的代码以使我的问题更清楚,请查看它。

$('<a>close</a>').click(function() {
            alert("test");
        }).appendTo($('.widget-head'));

var sHtml = $('.widget-head').wrap('<p>').parent().html();
$(currentTmpContainer).html(resultHtml);

(这只是一个代码片段。我认为您会理解它。谢谢。)
最后,我发现这.click在我的示例中不起作用。我想原因是因为我使用的是.html()而不是.append(). 这是对的吗?谢谢。

4

2 回答 2

2
  1. 随着.html您覆盖内容,同时.append您将内容添加到标签的末尾。
  2. html仅接受原始字符串,append您也可以使用 jQuery 对象。

例子:

$('#foo').html($('<input>')); //invalid!
$('#foo').append($('<input>')); //Valid!

有事件:

var $input = $('<input>').click(function(){
    alert('foo');
});

$('#foo').append($input); 
于 2013-03-12T02:27:06.973 回答
1

我倾向于使用 .html() 来更改元素的文本。例如

$('.myElement').html('Hello, World!');

这会导致类似

<p class='myElement'>Hello, World!</p>

我使用 .append() 将新元素添加到现有元素。例如

$('.myElement').append($('<span>Inner Element!</span>'));

这导致

<p class='myElement'><span>Inner Element!</span></p>

我使用 .append() 的原因是它允许我使用 jQuery 来构建新元素。例如

var newElement = $('<span>Inner Element!</span>').click(function(e){ alert("Hello!"); });
$('.myElement').append(newElement);
于 2013-03-12T02:36:18.637 回答