Javascript 如何使用jQuery添加DOM元素?

Javascript 如何使用jQuery添加DOM元素?,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个函数,我目前正在使用它来显示隐藏的div.a_类型 如何修改此代码,以避免在隐藏的div中褪色, 我可以将新的div添加到DOM中 jQuery(function(){ // Add Answer jQuery(".add_answer").click(function(){ if(count >= "4"){ alert('Only 4 Answers Allowed'); }else{ var count = $(

我有一个函数,我目前正在使用它来显示隐藏的div.a_类型

如何修改此代码,以避免在隐藏的div中褪色, 我可以将新的div添加到DOM中

jQuery(function(){ // Add Answer jQuery(".add_answer").click(function(){ if(count >= "4"){ alert('Only 4 Answers Allowed'); }else{ var count = $(this).attr("alt"); count++; $(this).parents('div:first').find('.a_type_'+count+'').fadeIn(); $(this).attr("alt", count); } }); });
}))

在最后一个div之后添加它怎么样

$('.a_type:last').insertAfter('<div class="a_type">content</div>');
$('.a_type:last')。插入后面的('content');
编辑
您可以通过对somefile.php的AJAX调用获取信息,然后somefile应在div中返回您想要的内容:

$.get('path/to/somefile.php', function(data){
 $('.a_type:last').insertAfter('<div class="a_type">' + data + '</div>');
});
$.get('path/to/somefile.php',函数(数据){
$('.a_type:last')。在(''+数据+'')之后插入;
});
Somefile.php应该是这样的:

<?php
 session_start();
 $sessiondata = $_SESSION['data'];
 echo "Whatever you type here will come inside the div bla bla $sessiondata";
?>

编辑
好的,试试这个:

jQuery(function(){ // Add Answer jQuery(".add_answer").click(function(){ if(count >= "4"){ alert('Only 4 Answers Allowed'); }else{ var count = $(this).attr("alt"); count++; $('.a_type_'+count-1+'').insertAfter(' Place content back here'); $(this).attr("alt", count); } }); }); jQuery(函数(){//添加答案 jQuery(“.add_answer”)。单击(函数(){ 如果(计数>=“4”){ 警报(“只允许4个答案”); }否则{ var count=$(this.attr(“alt”); 计数++; $('.a_type_'+count-1+'')。插入后面(' 将内容放回此处“); $(this.attr(“alt”,count); } }); }); 如果您仍然需要AJAX,只需混合使用它即可

我有另一个函数,如果单击按钮,它将删除插入的div。由于pageload上的附加div没有加载到dom中,所以它现在不起作用。现在如何触发函数来删除这些

您有三种选择来解决最近的问题

  • 您可以使用jQuery插件,在添加DOM元素时将事件处理程序重新应用于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...
        }
    })
    

  • 请注意,虽然您可以打印HTML,但不能通过javascript打印PHP,因为PHP是一个预处理器。很高兴知道…您建议我如何在我要打印的select中打印PHP会话数据?使用AJAX获取PHP会话数据(jQuery有AJAX工具,我将更新我的anser以使用它们。insertAfter不起作用,所以我尝试了“after”,正如您之前建议的那样,它起了作用。谢谢好的,奇怪的,我认为它是insertAfter,但其实并不重要,如果这是您使用的anser,那么您应该接受它。
    $('ul').click(function(e){
        var target = e ? e.target : window.event.srcElement;
        if(target.nodeName.toLowerCase() === 'li') {
            // Do Stuff...
        }
    })