Javascript 仅在使用jquery进行检查后才在div之前添加元素

Javascript 仅在使用jquery进行检查后才在div之前添加元素,javascript,jquery,html,Javascript,Jquery,Html,我在按钮上的div之前添加标签,如下所示: $(".deletebutton").before("<label></label>"); 请建议 [更新]有更好的解决方案吗? 这对我有用 if ($(".deletebutton").prev().get(0).tagName != 'LABEL') { $(".deletebutton").before("<label></label>"); } else { $(".delete

我在按钮上的div之前添加标签,如下所示:

$(".deletebutton").before("<label></label>");
请建议

[更新]有更好的解决方案吗? 这对我有用

if ($(".deletebutton").prev().get(0).tagName != 'LABEL') {
    $(".deletebutton").before("<label></label>");
} else {
    $(".deletebutton").prev().remove();
    $(".deletebutton").before("<label></label>");
}
if($(“.deletebutton”).prev().get(0).tagName!=“LABEL”){
$(“.deletebutton”)。在(“”)之前;
}否则{
$(“.deletebutton”).prev().remove();
$(“.deletebutton”)。在(“”)之前;
}
如果我们想查看家长:

@silentw如果每次都添加一个div怎么办。deletebutton

我使用了以下代码,但它不起作用:

var parentTag = $(".ruRemove").parent().get(0).tagName;

if (parentTag == 'LI') {
    $(".ruRemove").wrap("<div class='data deletebutton'></div>");
    $(".deletebutton").before("<label></label>");
} else {

    var par = $('.deletebutton').parent();
    if (par.is('div')) par.remove();
    $(".ruRemove").wrap("<div class='data deletebutton'></div>");

    var prev = $('.deletebutton').prev();
    if (prev.is('label')) prev.remove();
    $('.deletebutton').before("<label></label>");
}

<label> </label>
<div class="deletebutton">
    <label> </label>
    <div class="deletebutton">
        <label> </label>
        <div class="deletebutton">
        </div>
    </div>
</div>
var parentTag=$(“.ruRemove”).parent().get(0).tagName;
如果(parentTag='LI'){
$(“.ruRemove”).wrap(“”);
$(“.deletebutton”)。在(“”)之前;
}否则{
var PAR=$('.DeleTouButt).PARTUNTY();
如果(PAR是(‘DIV’))PAR。
$(“.ruRemove”).wrap(“”);
var prev=$('.deletebutton').prev();
如果(prev.is('label'))prev.remove();
$('.deletebutton')。在(“”)之前;
}
$(“.deletebutton”)。在('click',function()上{
如果(!$(this).prev()是('label'))$(this).before('A');
});

更新
$(.deletebutton”)。在('click',function()上{
var prev=$(this.prev();
如果(prev.is('label'))prev.remove();
$(此)。之前(“此为标签”);
});
$(.deletebutton”)。在('click',function()上{
如果(!$(this).prev()是('label'))$(this).before('A');
});

更新
$(.deletebutton”)。在('click',function()上{
var prev=$(this.prev();
如果(prev.is('label'))prev.remove();
$(此)。之前(“此为标签”);
});

你知道你可以直接在stackoverflow中构建演示吗?学习使用snipplet按钮。@epascarello不知道该功能,谢谢你提供的信息@DotnetSparrow如果没有prev()元素,更新的代码将失败。享受that@silentw编辑时,if中的逻辑是错误的。它将永远是真实的,并且正在做相反的事情。not()应该是is()@epascarello谢谢你的提醒,我把问题解释错了。现在修好了!你知道你可以直接在stackoverflow中创建演示吗?学习使用snipplet按钮。@epascarello不知道这个功能,谢谢你提供的信息@DotnetSparrow如果没有prev()元素,更新的代码将失败。享受that@silentw编辑时,if中的逻辑是错误的。它将永远是真实的,并且正在做相反的事情。not()应该是is()@epascarello谢谢你的提醒,我把问题解释错了。现在修好了!
var parentTag = $(".ruRemove").parent().get(0).tagName;

if (parentTag == 'LI') {
    $(".ruRemove").wrap("<div class='data deletebutton'></div>");
    $(".deletebutton").before("<label></label>");
} else {

    var par = $('.deletebutton').parent();
    if (par.is('div')) par.remove();
    $(".ruRemove").wrap("<div class='data deletebutton'></div>");

    var prev = $('.deletebutton').prev();
    if (prev.is('label')) prev.remove();
    $('.deletebutton').before("<label></label>");
}

<label> </label>
<div class="deletebutton">
    <label> </label>
    <div class="deletebutton">
        <label> </label>
        <div class="deletebutton">
        </div>
    </div>
</div>
$(".deletebutton").on('click', function() {
    if(!$(this).prev().is('label')) $(this).before("<label>A</label>");
});
$(".deletebutton").on('click', function() {
    var prev = $(this).prev();
    if(prev.is('label')) prev.remove();
    $(this).before("<label>This is a label</label>");
});