奇怪的事情发生在我身上并带有对象引用。DOM对象在通过jquery函数后失去引用
我有一个穿通在onclick
var tdButtonDOMCopy = $('#tD'+catSeq+'Button');
以下DOM而这是在-Jquery的创建的按钮,参照它的下一个功能:
tdButtonDOM.replaceWith('<button id="buttonChange" onclick="approveFormEdit(\''+tdButtonDOMCopy+'\')"\n\
class="btn btn-primary">Sla wijziging op</button>');
我想要将此整个DOM元素[Object object]
作为参数传递给其下一个功能:
function approveFormEdit(tdButtonElement) {
alert(tdButtonElement.html());
.... - Omitted -
现在这里是有趣的事:
在onclick
节的目标tdButtonDOMCopy
被看作是一个DOM对象,我可以使用.html()
方法就可以了。
但是,一旦对象达到函数approveFormEdit
,.html()
方法不再有效,因为它以某种方式丢失了引用DOM对象。
这到底是怎么回事?
这与上下文
请不要混用过时的DOM0内联事件处理程序和jQuery。 – Alnitak
通过将对象与其他文本文字连接起来,可以将对象放入字符串上下文中。所以它的toString方法被调用 - 对于没有定义它们自己的对象,调用一个通用版本,并且只返回文本'[object Object]'。你不能以这种方式传递复杂的对象。倾听@Alnitak所说的 - 并使用_proper_ jQuery方法。如果您需要对某个对象的引用,则将其存储在稍后需要使用f.e引用它的元素上。 https://api.jquery.com/data/ – CBroe
感谢您提出这些建议。传递DOM对我来说是新的,因为之前我在.replace()函数中重写了整个DOM html,所以我宁愿只复制元素而不是重写它。 – MwBakker