gpt4 book ai didi

javascript - 为什么不能在 $(this) 上调用 outerHTML?

转载 作者:可可西里 更新时间:2023-11-01 01:35:33 26 4
gpt4 key购买 nike

当你想得到 HTML对于整个 DOM 元素(包括包装器),您可以执行以下操作(如 here 所述):

$('#myElementId')[0].outerHTML

但是您不能做的是在 $(this) 内部调用 outerHTML,例如点击监听器或选择器函数主体范围:

$(this).outerHTML //Doesn't complete in IntelliSense, returns undefined in browser

$(this)[0].outerHTML //Correction, this DOES work, but it doesn't complete in IntelliSense

因为在这些情况下 IntelliSense 不会显示 innerHTMLouterHTML,尽管使用 vanilla JavaScript 您可以:

document.getElementById($(this).attr('id')).outerHTML

那么……这是怎么回事?

最佳答案

outerHTML 是 DOM 属性; jQuery 不会公开所有 DOM 属性。

如果你有一个 jQuery 对象,你只能直接访问那些 jQuery 公开的属性和方法,反之亦然 DOM 对象。

在面向对象的术语中,jQuery 对象不是从 DOM 对象继承,而是包含它们。

$x[0] 获取由 jQuery 对象表示的第一个元素的 DOM 对象。

关于javascript - 为什么不能在 $(this) 上调用 outerHTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30661134/

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