2011-12-14 35 views
2

我有兩個單獨的數組看起來像這樣在同一位置

12-Jan-12 (remove), 14-Mar-12 (remove) 
£139, £187 

卸下單獨的陣列兩個項目當有人點擊陣列的刪除按鈕,我需要它從第二取出一排列在同一位置

所以,如果我點擊刪除就12-Jan-12然後我希望它從第二陣列

這裏刪除£139的一些代碼我已經從第一數組中刪除一個

$('.delete-date').live('click', function() { 

    $(this).closest('.myDate').remove(); 

}); 

這裏是我的HTML

<span class="dates"> 
    <span class="myDate"> 
     12-jan-12 
     <span class="delete-date" title="remove this tag" /> 
    </span>, 
    <span class="myDate"> 
     14-mar-12 
     <span class="delete-date" title="remove this tag" /> 
    </span>, 
</span> 

<span class="costs"> 
    <span class="myCost"> 
     £139 
    </span>, 
    <span class="myCost"> 
     £187 
    </span>, 
</span> 

任何想法?

在此先感謝

+0

只是爲了澄清,你沒有這個存儲在一個實際的數組正確的嗎?只是HTML代表權? – JohnP 2011-12-14 10:47:05

+0

@JohnP是的,這是正確的我在後面的Asp.Net代碼中使用HTML表示,並將其作爲一個數組使用 – 2011-12-14 10:48:15

回答

1

結合起來,在點擊事件處理程序使用jQuery你可以得到的使用.index()方法對同胞進行分類,並使用.eq()方法根據其索引選擇元素。所以:

var d = $(this).closest('.myDate'); 
var index = d.index(); 

d.remove(); 

$(".costs .myCost").eq(index).remove(); 

NB:與其.live(),你應該考慮使用delegate()(或.on()使用jQuery 1.7),因爲它是更有效的。

0

您正在尋找

.index() 

.eq() 

例如

var dateIndex = $(".dates").index($(this)); 
prices.eq(dateIndex).hide(); 
1

您可以使用index()方法獲取元素的索引並在第二組中找到匹配的元素。

$('.delete-date').live('click', function() { 
    var pos = $(this).closest('.myDate').index(); 
    $(this).closest('.myDate').remove(); 
    $('.costs .myCost').eq(pos).remove(); 
}); 

http://api.jquery.com/index/