我試圖在所有.drawer-filter-btns>頁面加載中使用URL片段添加錨定標記。該URL片段由前一頁(例如,site.com/foo#bar)中的鏈接確定,我打算在該頁面上生成URL以鏈接到每個產品子集可用的各種顏色類型。在散列類中追加所有hrefs
目前我的HTML看起來像這樣:
<div class="drawer-filter-btns">
<a href="_door_type_a_drawer_type_1">link</a>
<a href="_door_type_b_drawer_type_1">link</a>
<a href="_door_type_a_drawer_type_2">link</a>
<a href="_door_type_b_drawer_type_2">link</a>
<a href="_door_type_a_drawer_type_3">link</a>
<a href="_door_type_b_drawer_type_3">link</a>
<a href="_door_type_a_drawer_type_4">link</a>
<a href="_door_type_b_drawer_type_4">link</a>
</div>
這是很容易的找出只是做一個邏輯:
var href = $(".drawer-filter-btns>a").attr('href');
var hash = location.hash.substr(1);
$(".drawer-filter-btns>a").attr('href', hash + href);
但是我有這個問題是每個按鈕都有一個不同的href(在執行JS之前),但代碼只考慮第一個並將其複製到.drawer-filter-btns> a的所有hrefs中,所以我的HTML變成了這樣(代碼執行後):
<div class="drawer-filter-btns">
<a href="bar_door_type_a_drawer_type_1">link</a>
<a href="bar_door_type_a_drawer_type_1">link</a>
<a href="bar_door_type_a_drawer_type_1">link</a>
<a href="bar_door_type_a_drawer_type_1">link</a>
<a href="bar_door_type_a_drawer_type_1">link</a>
<a href="bar_door_type_a_drawer_type_1">link</a>
<a href="bar_door_type_a_drawer_type_1">link</a>
<a href="bar_door_type_a_drawer_type_1">link</a>
</div>
儘管不熟悉JQuery/Javascript,但我試圖用PHP從我們學到的邏輯來解決這個問題,儘管它沒有像預期的那樣工作。
$('.drawer-filter-btns>a').attr('href').each(function(){
var href = $(".drawer-filter-btns>a").attr('href');
var hash = location.hash.substr(1);
$(".drawer-filter-btns>a").attr('href', hash + href);
});
我想要做的是獲取href變量來更新每個鏈接,以便正確地追加它們。可能有一種方法可以做到這一點,而不需要將原始的href設置爲一個變量,但我目前不熟練使用Javascript。
理想的情況下,我最終輸出看起來像這樣:
<div class="drawer-filter-btns">
<a href="bar_door_type_a_drawer_type_1">link</a>
<a href="bar_door_type_b_drawer_type_1">link</a>
<a href="bar_door_type_a_drawer_type_2">link</a>
<a href="bar_door_type_b_drawer_type_2">link</a>
<a href="bar_door_type_a_drawer_type_3">link</a>
<a href="bar_door_type_b_drawer_type_3">link</a>
<a href="bar_door_type_a_drawer_type_4">link</a>
<a href="bar_door_type_b_drawer_type_4">link</a>
</div>
這裏你不需要每個循環,'attr()'setter在集合http:// jsfiddle上工作。net/hvh9rxbt/1 /無論如何,+1因爲你用細節OP的代碼修復了 –
沒關係,你添加了小提琴。很酷!謝謝! – AtheistP3ace
謝謝@ AtheistP3ace解釋您的代碼修改,並提供參考資料和A. Wolff爲您的優化版本。很高興知道我不是太遙遠! –