Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery在链接周围添加div_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用jquery在链接周围添加div

Javascript 使用jquery在链接周围添加div,javascript,jquery,html,Javascript,Jquery,Html,我在点击按钮的链接周围添加了一个div。但当我多次单击按钮时,它会添加多个div <li> <label> </label> <div class="deletebutton"> <label> </label> <div class="deletebutton"> <label> </label>

我在点击按钮的链接周围添加了一个div。但当我多次单击按钮时,它会添加多个div

    <li>
    <label> </label>
    <div class="deletebutton">
        <label> </label>
        <div class="deletebutton">
            <label> </label>
            <div class="deletebutton">
<input type="button" id="ctl00_ContentPlaceHolder1_ctrlAddPhotos_RadUpload1remove1" value="Remove" class="ruButton ruRemove" name="RemoveRow">
            </div>
        </div>
    </li>
如何确保它首先检查链接周围是否有div,然后添加

我正在使用以下代码:

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>");
}
应该是这样的:

  <li>
                <label> </label>
                <div class="deletebutton">
    <input type="button" id="ctl00_ContentPlaceHolder1_ctrlAddPhotos_RadUpload1remove1" value="Remove" class="ruButton ruRemove" name="RemoveRow">
                </div>
        </li>
当我点击按钮。单击html之前,请执行以下操作:

  <li>             
    <input type="button" id="ctl00_ContentPlaceHolder1_ctrlAddPhotos_RadUpload1remove1" value="Remove" class="ruButton ruRemove" name="RemoveRow">  
        </li>

下面是一个如图所示的解决方案

代码故事是

HTML

JavaScript


代码所做的是为按钮单击注册回调。单击时,我们询问被单击按钮的父节点,并询问父节点是否具有标记名DIV,这意味着它是一个。如果它不是一个div,那么我们将按钮包装成一个div并结束。在下一次调用中,父级是div的检测结果将为true,并且不会添加新的div。

为什么不使用一个只在第一次单击时执行所需操作的函数呢

因此,只有在第一次单击该按钮时才会添加div,如果您在其他时间单击该按钮,它将不会做任何事情。这样就不会添加多个div

为此,您可以使用jQuery:

<script type="text/javascript">

    $("#firstclick").one("click",function() {
        alert("This will be displayed only once.");
    });

</script>
您甚至可以查看jQuery API文档中的一个:


我不太清楚你在找什么。能否在HTML片段前后显示以描述所需效果?@Kolban,请检查更新的问题。
$(function() {
    $("#myButton").click(function() {
        if ($(this).parent().get(0).tagName !== "DIV") {
            $(this).wrap("<div class='myDiv'>");
        }
    });
});
<script type="text/javascript">

    $("#firstclick").one("click",function() {
        alert("This will be displayed only once.");
    });

</script>