如何使用jQuery添加DOM元素?
我有一个function,我目前正在使用它来显示隐藏的div.a_type
我怎样才能修改这段代码,这样我就可以将新的div添加到DOM中,而不是淡入隐藏的div
jQuery(function(){//添加答案 jQuery的( “add_answer”)。点击(函数(){ if(count> =“4”){ 警报('只允许4个答案'); }其他{ var count = $(this).attr(“alt”); 计数++; ( 'a_type _ '+数+''):$(本)。家长( 'DIV第一')找到淡入(); $(this).attr(“alt”,count); } }); });
好的,既然我已经解决了这个问题,我还有一个问题,
我有另一个函数,如果单击一个按钮,将删除插入的div。 现在它没有工作,额外的div没有加载到页面加载的dom。 我如何触发function现在删除这些?
jQuery(function(){//隐藏答案
jQuery(".destroy_answer").click(function(){ $(this).parents("div:first").fadeOut(function (){ $(this).remove() }); var count = $(this).parents('div:first').parents('div:first').find('.add_answer').attr("alt"); count--; $(this).parents('div:first').parents('div:first').find('.add_answer').attr("alt", count); });
});
如何在最后一个div之后添加它。
$('.a_type:last').insertAfter('content');
编辑
你可以通过对somefile.php的AJAX调用来获取信息,然后somefile应该在div中返回你想要的内容:
$.get('path/to/somefile.php', function(data){ $('.a_type:last').insertAfter('' + data + ''); });
Somefile.php应该是这样的:
编辑
好的,试试这个:
jQuery(function(){//添加答案 jQuery的( “add_answer”)。点击(函数(){ if(count> =“4”){ 警报('只允许4个答案'); }其他{ var count = $(this).attr(“alt”); 计数++; $(”。a_type _ '+算-1 +' ')。insertAfter(' 把内容放回这里'); $(this).attr(“alt”,count); } }); });
如果你仍然需要,只需混合使用AJAX即可。
我有另一个函数,如果单击一个按钮,将删除插入的div。 现在它没有工作,额外的div没有加载到页面加载的dom。 我如何触发function现在删除这些?
您有三种方法可以解决最近的问题。
-
您可以使用liveQuery ,这是一个jQuery插件,可以在添加时将事件处理程序重新应用于DOM元素。 注意:此插件仅在您使用本机jQuery DOM附加/前置函数(append / prepend / after / before / insertBefore / insertAfter等)时才有效。
-
或者,您可以在添加新元素时手动重新应用处理程序…(不是最佳选项)
-
第三,在我看来,最好的选择是利用事件授权的强大力量。 您所做的是将事件处理程序附加到任何父级,例如,如果您要将列表项动态添加到无序列表,而不是不断地将事件处理程序重新应用于每个添加的项,您只需附加事件处理程序到父母然后找到事件的目标:
$('ul').click(function(e){ var target = e ? e.target : window.event.srcElement; if(target.nodeName.toLowerCase() === 'li') { // Do Stuff... } })