我目前有一个javascript函数,它使用jQuery .add()方法向DOM添加一个元素,然后立即尝试访问它(在这种情况下,通过添加一个类,等待并再次删除它)
elem = "<p id="new">added element</p>"
jQuery("body").add(elem)
jQuery("#new").addClass("red")
setTimeout(function(){
jQuery(".new").removeClass("red")
},1000)
问题是jQuery选择器找不到.new元素。我发现类似问题的所有解决方案都涉及在加载后将单击/鼠标事件绑定到元素,这不是我在这种情况下要查找的内容。 我也查看了jQuery.add()的替代方法,但只提出了jQuery.append(),这导致了同样的问题。
如果它有任何相关性,则此代码片段所在的函数位于jQuery(document).ready()函数之外。
tl;博士版:
在使用jQuery.add()添加元素后,如何操作(例如添加类)?
答案 0 :(得分:1)
你错了
"
id
和class
选区错过(ID - #
和课程 - .
)尝试
elem = '<p class="new">added element</p>'
jQuery("body").append(elem)
jQuery(".new").addClass("red")
setTimeout(function(){
jQuery(".new").removeClass("red")
}, 1000)
演示:Fiddle
我可以把它写成
var elem = $('<p class="new">added element</p>').appendTo('body').addClass('red');
setTimeout(function(){
elem.removeClass("red")
}, 1000);
演示:Fiddle
答案 1 :(得分:1)
将.
更改为#
jQuery("#new").addClass("red")
setTimeout(function(){
jQuery("#new").removeClass("red")
});
或者如果您的意思是课程,那么请将您的标记更改为具有课程而不是ID。
elem = '<p class="new">added element</p>'
.new
定位类new
的元素,#new
定位标识为new
的元素。
.add()不会向DOM添加元素。您可以使用append通过执行
将元素添加为body
的最后一个子元素
jQuery("body").append(elem)
答案 2 :(得分:0)
将elem = "<p id="new">added element</p>"
更改为elem = '<p id="new">added element</p>'
elem = '<p id="new">added element</p>';
jQuery("body").add(elem)
jQuery("#new").addClass("red")
setTimeout(function(){
jQuery("#new").removeClass("red")
},1000)