Jquery 检查元素或html标记是否存在

Jquery 检查元素或html标记是否存在,jquery,Jquery,我有一个javascript树,用户在其中选择一个树节点并单击一个按钮,然后在所选树节点旁边附加一个图标 $j("li[name='"+node_name+"'] > a").append('<a style="cursor:default;"><ins class="' + icon_class + '">&nbsp;</ins></a>'); 以下是该树中一个节点的源代码: <li node_id="4" name="ma

我有一个javascript树,用户在其中选择一个树节点并单击一个按钮,然后在所选树节点旁边附加一个图标

$j("li[name='"+node_name+"'] > a").append('<a style="cursor:default;"><ins class="' + icon_class + '">&nbsp;</ins></a>');
以下是该树中一个节点的源代码:

<li node_id="4" name="mars" >
<ins class="jstree-icon"> </ins>
<a href="#" class="jstree-clicked"><ins class="jstree-icon"> </ins> Mars Planet 
    <a style="cursor: default;"><ins class="pattern-icon3"> </ins></a> <!--this line displays the icon-->
    <a style="cursor: default;"><ins class="pattern-icon3"> </ins></a> <!--this line displays the same icon again-->
</a>
</li>
.
.
.
  • . . .
    下面是我用来将图标附加到树节点旁边的代码

    $j("li[name='"+node_name+"'] > a").append('<a style="cursor:default;"><ins class="' + icon_class + '">&nbsp;</ins></a>');
    
    $j(“li[name=”+node_name+“']>a”).append(“”);
    
    图标显示正确

    我的问题是:

    我只需要显示一次特定的图标。 当前,当用户选择一个节点并单击按钮两次时,将在该选定节点旁边附加两个图标


    是否有方法检查在添加节点名称之前是否已将
    追加到节点名称旁边?

    您可以尝试选择
    .pattern-icon3
    元素并检查结果对象的属性。如果元素不存在,
    length
    将为
    0
    。如果它确实存在,它将大于
    0

    if($j("li[name='" + node_name + "'] > a .pattern-icon3").length) {
        //Already exists!
    }
    

    您可以尝试选择
    .pattern-icon3
    元素并检查结果对象的属性。如果元素不存在,
    length
    将为
    0
    。如果它确实存在,它将大于
    0

    if($j("li[name='" + node_name + "'] > a .pattern-icon3").length) {
        //Already exists!
    }
    

    如果要检查html是否存在:

    if ($('#selector').length > 0){
         alert('tag exists');
    }
    

    如果要检查html是否存在:

    if ($('#selector').length > 0){
         alert('tag exists');
    }
    

    只有在匹配失败时,才能尝试将元素与匹配并附加它:

    var listItemLink = $j("li[name='" + node_name + "'] > a");
    if (!listItemLink.find("." + icon_class).length) {
        listItemLink.append('<a style="cursor:default;"><ins class="'
            + icon_class + '">&nbsp;</ins></a>');
    }
    
    var-listItemLink=$j(“li[name=”+node_name+“]>a”);
    如果(!listItemLink.find(“.”+icon\u class).length){
    listItemLink.append(“”);
    }
    
    只有在匹配失败时,才可以尝试将元素与匹配并附加它:

    var listItemLink = $j("li[name='" + node_name + "'] > a");
    if (!listItemLink.find("." + icon_class).length) {
        listItemLink.append('<a style="cursor:default;"><ins class="'
            + icon_class + '">&nbsp;</ins></a>');
    }
    
    var-listItemLink=$j(“li[name=”+node_name+“]>a”);
    如果(!listItemLink.find(“.”+icon\u class).length){
    listItemLink.append(“”);
    }
    
    只是个想法,但也许你可以用一下


    只是个主意,但也许你可以用


    与问题无关,但是
    的这种用法并不是真正的语义。如果您想要一个样式化的连字符/减号,请使用连字符。非常感谢您的建议,但是我使用Jstree从json文件生成树,并且标记是由Jstree自己创建的,与问题无关,但是使用
    并不是真正的语义。如果您想要一个样式化的连字符/减号,请使用连字符。非常感谢您的建议,但是我使用Jstree从json文件生成树,标记由Jstree本身创建