簡體   English   中英

如果div包含具有基於參數的類的范圍

[英]If div contains a span with a class based on parameter

我試圖創建一個簡單的函數,該函數創建一個span,其類等於傳遞給該函數的任何類。 這些跨度填充在父div內。 我還想確保,一旦添加了一個范圍,就不會使用該id / class添加另一個范圍,除非我的multiSearchEnabled布爾值為true。

這是我的一些代碼

function createBadge(badge_type) {
    var badge_parent_div = $("#badge-column-div");
    var badge = "<span class='badge-text " + badge_type + "'>" + badge_type + "</span>";

    if (!$(badge_parent_div.find("span").hasClass(badge_type))) {
        badge_parent_div.append(badge);
    } else {
        if (multiSearchEnabled) {
            badge_parent_div.append(badge); // Add another Badge, since search contains multiples
         }
    }
  }

但是,這似乎不起作用,該函數將在onKeyUp上運行,因此這就是為什么我需要檢測這種類型的跨度是否已經存在,所以我不重復它。

根據建議更新

function createBadge(badge_type) {
 var badge = "<span class='" + badge_type + "'>" + badge_type + "</span>";
 var bHasBadge = $("#badge-column-div").has('.' + badge_type);

 if (bHasBadge == false || (bHasBadge && multiSearchEnabled == true))
 {
     // add it
     $("#badge-column-div").append(badge);
 }
}

但是,使用以下代碼,一無所獲。 我需要它首先添加一個徽章,然后只有在multiSearchEnabled布爾值為true時才能添加多個徽章。

has()檢查與選擇器匹配的子控件。

function createBadge(sBadgeType) 
{
    var oBadgeParent = $("#badge-column-div");
    var bHasBadge    = oBadgeParent.has("span." + sBadgeType)

    if (bHasBadge == false || bMultiSearchEnabled) 
        oBadgeParent.append
        (
            $("<span class='badge-text " +sBadgeType+ "'>" +sBadgeType+ "</span>")
        );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM