gpt4 book ai didi

jquery - 为什么 jQuery.html() 能够成功接受 jQuery 对象,尽管文档说它不能?

转载 作者:行者123 更新时间:2023-12-01 01:07:05 24 4
gpt4 key购买 nike

我只是想确切地了解它是如何工作的,因为我的代码中有一个错误,可能与我的误解有关。

docs假设 .html(htmlString)htmlString 参数可以是 htmlStringfunction,但如果我这样做

var $div = $("div").detach();
$("body").html($div);

即使 $div 是一个 jQuery 对象,分离的 div 正确 也会替换正文内容。

为了完整起见,我的完整代码如下

<html>
<body style="font-size:25px">

<div><p> CLICK TO TEST </p></div>

<script src="/js/jquery-1.11.1.min.js"></script>

<script>
$(function() {
$("p").click(function() { console.log("P1 CLICKED!"); });

var $div = $("div").detach();

$("body").html($div);
//$("body").html($div);
});
</script>

</body>
</html>

谢谢!

最佳答案

简而言之,如果不是字符串或函数,它会将传递的参数转发给接受 DOM 或 Jquery 对象的 jQuery.fn.append .append这就是您的代码有效的原因。

为了清楚起见,这是该函数的缩小版本。

html: function( value ) {
if ( value === undefined ) {
...
} else if ( typeof value === "string" && ..... ) {
...
} else if ( jQuery.isFunction( value ) ) {
...
} else {
this.empty().append( value );
}

return this;
}

关于jquery - 为什么 jQuery.html() 能够成功接受 jQuery 对象,尽管文档说它不能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27403411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com