2017-04-14 27 views
0

我正在創建一個配方工具,通過選定的複選框來接受用戶的輸入。看到這裏:zelda.wptoolkit.us添加班級鏈接slu based基於關閉slu塊數組

第一部分: 我有一個腳本,將創建一個基於選定輸入值的slug數組。當用戶點擊一個複選框時,關聯的slug被添加到名爲checkedAttr的數組中。兩個

<script> 
var checkedAttr = []; 

$('#wp-advanced-search :checkbox').change(function() 
{ 
checkedAttr = []; 
$('#wp-advanced-search :checkbox').each(function(i, item){ 
    if($(item).is(':checked')) 
    { 
     checkedAttr.push($(item).val()); 
    } 
}); 
console.log("checkedAttr:", checkedAttr); 
}); 
</script> 

部分: 我嘗試使用下面.addClass代碼包含從第一部分在陣列中發現蛞蝓的任何鏈接。

鏈接結構:http://zelda.wptoolkit.us/tag/any-crab/

代碼:

<script type="text/javascript"> 
jQuery(function() { 
jQuery('#wpas-results-inner > div > div > p > a[href^="/tag/' + 
location.pathname.split("/") this.checkedAttr[0] + '"]').addClass('active'); 
}); 
</script> 

什麼我的目標做的是針對每個卡的鏈接,然後添加一個類,其塞在被發現的鏈接我陣列。最終目標是突出檢查「成分」並淡化未檢查過的成分。

我不確定如何使這個函數檢查我的數組爲每個slu I,我很想知道需要什麼步驟來完成這個!

我也不能肯定,如果我的jQuery的CSS的路徑是否正確瞄準鏈接

感謝您的見解!

+0

我肯定的'change'功能'checkedAttr = []內取出陣列實例;'和只要保持'change'功能以外的聲明。此外,'this.checkedAttr [0]'將爲所有內容添加相同的路徑。 –

+0

請按照[mcve] – charlietfl

+0

顯示相關的html結構,如果我們點擊複選框,並且如果它在相關卡片塊上打勾並應用'active'類,您需要什麼?並且如果它取消並取消「活動」類? –

回答

0

如果您正在尋找類似於選擇特定複選框之類的東西,則應該啓用與該複選框相關的所有卡(可以應用任何類active),並且一旦您取消選中該複選框,我們需要刪除該特定類從所有相關的複選框?

你可以檢查給定的小提琴。 https://jsfiddle.net/stdeepak22/x1L95dw3/1/

var checkedAttr = []; 

$('#checkBoxForCategory :checkbox').change(function() 
{ 
     var cardCategory = $(this).val();  
    var allCards = $('.myCard[card-category=' + cardCategory + ']'); 

    if($(this).is(':checked')) 
    { 
      //add the selected category to array 
     checkedAttr.push(cardCategory); 

     //add the `active` class for all the card belongs to selected category 
     $(allCards).each(function() 
     { 
      $(this).addClass('active'); 
     }); 
    } 
    else 
    { 
     //remove from array 
     var index = checkedAttr.indexOf(cardCategory); 
     checkedAttr.splice(index, 1); 

     //remove the class for all the card belongs to selected category 
     $(allCards).each(function() 
     { 
     $(this).removeClass('active'); 
     }); 
    }  

    console.log("checkedAttr:", checkedAttr); 
}); 
+0

嘿!這看起來很棒!但也許我需要澄清我的問題。我的目標是在選擇表格中的相應選項時,讓卡片中的配料變色。即成分將默認爲灰色,然後在表格中選中時突出顯示。 – user2391365

+0

是的,我們已經在例子中完成了。初始背景是「白色」,測試顏色是「藍色」,一旦你選擇它,它將恢復顏色。背景'藍色'和文字顏色'白色',您可以使用自己的顏色 –

+0

瞭解,但我打算更改單個成分鏈接的類,以便鏈接更改顏色,而不是背景。也許我沒有讓自己清楚,對不起! – user2391365