jQuery append()就在一个元素之后,

时间:2014-11-23 22:48:46

标签: jquery append

我有这个HTML:

<div id="idtest">
<h4>click me test</h4>
</div>  
<ul id="collapse-PerfilManage" class="collapse">
     <li><a class="privateMenuLinkJS "><i class="fa  fa-lock"></i> elm1</a></li>
     <li><a class="privateMenuLinkJS inativeLinkCODE"><i class="fa  fa-lock"></i> elm2</a></li>
     <li><a class="privateMenuLinkJS "><i class="fa  fa-lock"></i> elm3</a></li>
     <li><a class="privateMenuLinkJS "><i class="fa  fa-lock"></i> elm4</a></li>
 </ul>

我想在“li”中附加一些内容,其中“a”元素带有“inativeLinkCODE”类。

要做到这一点,我有这个jquery代码:

$(document).on("click ", "#idtest", function() {
    $("a").each(function() {
        if ($(this).hasClass("inativeLinkCODE")) {             
            $(this).parent().append("<span>New</span>");
        }
    });    
});

此代码的结果是:

<li><a>elm2</a><span>New</span></li>

我想这样:

<li><span>New</span><a>elm2</a></li>

在标签“li”之后。知道怎么做吗? 我尝试了append()和after()而没有工作。

这里有小提琴。 http://jsfiddle.net/a7ww6xyL/

这些解决方案不适合我的情况 jQuery - add element after text jQuery: Add element after another element

3 个答案:

答案 0 :(得分:0)

您是否尝试过前置,这可能会解决您的问题? http://api.jquery.com/prepend/ 只需更改此行:

$(this).parent().append("<span>New</span>");

到这个

$(this).parent().prepend("<span>New</span>");

链接到小提琴:http://jsfiddle.net/a7ww6xyL/1/

答案 1 :(得分:0)

你应该使用prepend代替。 pre在父元素之前放置,而在父元素之后追加put。

$(document).on("click ", "#idtest", function() {
    $("a").each(function() {
        if ($(this).hasClass("inativeLinkCODE")) {             
            $(this).parent().prepend("<span>New</span>");
        }
    });    
});

答案 2 :(得分:0)

你就是这么做的。

$(document).on("click ", "#idtest", function() {
    $("a").each(function() {
        if ($(this).hasClass("inativeLinkCODE")) {             
            $(this).parent().prepend("<span>New</span>");
        }
    });    
});