假设我从jquery选择器获得了一个元素并存储在一个变量中,现在我想在对该变量执行一些DOM操作之前向该变量添加一些自定义元素。
例如,如果我这样做:
var placeHolder = $('.class-name').children().eq(0).clone();
如果孩子是输入标签,我会得到这样的数组:
[input#link, prevObject: r.fn.init(1)]
我认为上面代表选定的输入标签,现在我想附加另一个标签,如:
placeHolder = placeHolder + '<span class="delete-btn">X</span>';
现在我想将此placeHolder
添加回DOM。但是当我这样做时,$('.some-class').append(placeHolder);
在控制台中抛出错误。
这是错误:
jquery-3.2.1.slim.min.js:2 Uncaught Error: Syntax error, unrecognized
expression: [object Object]<span class="delete-btn">X</span>
奇怪的是,它以placeHolder
格式向DOM添加[object Object]
。那么如何添加从jquery选择器和一些自定义标签(如第三个突出显示的行)获得的元素,然后添加回DOM?
答案 0 :(得分:0)
通过将span添加到占位符,可以将其转换为字符串。不要尝试连接html,只需附加像
这样的对象$('.some-class')
.append(placeHolder)
.append('<span class="delete-btn">X</span>');
答案 1 :(得分:0)
你将占位符(一个jQuery对象)和一个字符串(你的span)连接起来并将它们传递给jQuery,然后jQuery将整个事物视为一个字符串。
使用.get(0),这应该可以解决您的问题:
var placeHolder = $('.class-name').children().eq(0).clone().get(0);