2016-11-11 227 views
0

我有下面的代碼:如何刪除項目刪除時的「,」?

<ul class="ul" id="selected_conditions"> 
    <li data-field="asset_locations_name" data-condition="in"> 
    <i class="fa fa-minus-circle delete_condition" aria-hidden="true" title="Click to remove this condition from the list"></i> WHERE asset_locations_name IN(
    <span class="condition_item" data-id="1213381233"> 
    <i class="fa fa-minus-circle delete" title="Click to remove this item from the list" aria-hidden="true"></i> 1213381233 
    </span>, 
    <span class="condition_item" data-id="1212371897"> 
    <i class="fa fa-minus-circle delete" title="Click to remove this item from the list" aria-hidden="true"></i> 1212371897 
    </span>) 
    </li> 
</ul> 

每次我上的小圖標.delete點擊我要刪除當前的價值,我是能夠實現與下面的代碼:

$(function() { 
    $('#selected_conditions').on('click', '.delete', function(ev) { 
    var item_id = $(this).parent().data('id'); 
    $('.condition_item[data-id="'+ item_id +'"]').remove(); 
    }); 
}); 

但上面的代碼有兩個問題:如果我刪除符號,不會刪除任何項目,這是錯誤的作爲第二個,我不能有一個emtpy ()字符串,所以:

  • 我該如何刪除,,這樣我不會得到像(,1213381233)(1213381233,)這樣的壞字符串?

任何幫助?我給你留下一個Fiddle玩。這是一個在製品,所以如果你有一個建議或更好的解決方案隨時添加到您的答案。

+0

不要使用名單。只有在需要時才使用數組和'.join(',')'將其轉換爲字符串。 – Blazemonger

+0

@Blazemonger檢查[這裏](http://stackoverflow.com/questions/40529833/how-to-join-array-values-in-jquery-but-formatting-them),會告訴你爲什麼我沒有使用'.join()' – ReynierPM

+0

@CBroe你能提供一個想法嗎?可以舉個例子說明你在想什麼 – ReynierPM

回答

3

不是對逗號進行硬編碼,而是使用CSS :before僅在連續有多個項目時才添加逗號。

.condition_item+.condition_item:before { 
    content: ", " 
} 

https://jsfiddle.net/8184ok2e/2/

+0

完美,這工作和回答我的第一個問題,你有一個第二個想法或解決方案,所以我可以完全接受你的答案? – ReynierPM

+0

@ReynierPM在SO你應該問每個職位一個問題 - 所以你應該接受這個答案。請參閱http://meta.stackexchange.com/questions/39223/one-post-with-multiple-questions-or-multiple-posts – gus27

+0

無論如何,您不應每次發帖詢問多個問題。但是,你可以很容易地用''('#'selected_conditions .condition_item').length'](https://api.jquery.com/length/) - https:// jsfiddle .net/8184ok2e/5/ – Blazemonger