2016-11-29 65 views
3

我有一系列的HTML佈局元素的

我試圖讓href的值與類wsite-com-category-product-wrap每個格,然後用它來插入一個具有相同href的新按鈕。

我現在的代碼是將所有鏈接(對於類爲.wsite-com-category-product-wrap的項目)插入到自身中,這意味着每個元素現在都有大約10個鏈接,而不僅僅是一個。

我寫這樣做的代碼:

$(".wsite-com-category-product-wrap").each(function() { 
 

 
    var link = $(this).find("a").attr("href"); 
 
    $("<a href=" + link + " class='custom-category-button'>Test</a>").insertAfter(".wsite-com-product-price"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="wsite-com-category-product-wrap"> 
 
    <a href="#" class="link">Link content</a> 
 
    <div>more divs</div> 
 
</div>

+3

哪裏'.wsite-COM-產品price'元素?據推測,你需要使用DOM遍歷在迭代中將其與'this'元素相關聯。 –

+1

請更新我用足夠的HTML和腳本所做的代碼片段,以顯示問題 – mplungjan

+0

@dwinnbrown,您可以爲我們提供類wsite-com-product-price的代碼嗎?那裏的html代碼在哪裏。你能提供那個嗎? – Learner

回答

0

您可以使用jQuery對象與.insertAfter,不只是一個字符串選擇。

因此,改變這種:

$("<a href=" + link + " class='custom-category-button'>Test</a>") 
    .insertAfter(".wsite-com-product-price"); 

到:

$("<a href=" + link + " class='custom-category-button'>Test</a>") 
    .insertAfter($(".wsite-com-product-price", this)); 
+0

這是正確的答案!看到我下面更新的答案...在insertAfter中使用這個錯誤。愚蠢的錯誤! – dwinnbrown

0

我發現,與insertAfter我需要的東西,確保它只是被添加到$(this)補充。

我用一個新的變量insertHere,使其更簡單:

$(".wsite-com-category-product-wrap").each(function() { 

    var link = $(this).find("a").attr("href"); 

    var insertHere = $(this).find(".wsite-com-product-price"); 
    $("<a href=" + link +" class='custom-category-button'>Test</a>").insertAfter(insertHere); 
});