jQuery insertBefore,Apend用于动态创建的元素

时间:2014-06-21 23:14:31

标签: javascript jquery

请看一下代码,它工作正常,它应该只添加一个p标签,但由于某种原因,它会插入几个p标签。 P标签不是动态创建的,但p标签中的某些内容是动态创建的(仅适用于信息,如果重要的话)。

 jQuery("div.content").on("click", ".add", function (e) {

        var ptag = jQuery('p.test-me');
        ptag.insertBefore('.main-content');

        return false;
    });

我想在带有类.main-content的其他p标签之前插入一个p标签(不是几个)。

提前谢谢。

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

var ptag = jQuery('p.test-me').eq(0);
ptag.insertBefore('.main-content');

答案 1 :(得分:0)

在您的代码中,如果您引用p elements类名.test-me,如果您有多个具有该类名称的p元素,则可能会检索多个元素。正如您所说,它附加了多个p元素,确认有多个元素具有类名.test-me。如果你不想要追加多个元素,并且非常确定要添加哪个元素只需使用id而不是类名,否则只需获取元素列表的第一个元素。

    // with id

    var ptag = jQuery('#id-of-p').clone().attr('id','');

    //  with className but first element

    var ptag = jQuery('.test-me').first(); or .eq(0);


    // with id, but should have .test-me class name, then only append?

    var ptag = jQuery('#id-of-p.test-me').clone().attr('id','');