クリック時にリストに項目を追加したり削除したりする際に問題があります。削除機能は1回だけ機能します。JavaScriptが既に存在する場合、クリック時にリストから文字列を削除します
<h1 id="show-list></h1>
<ul id="my-list>
<li data-itemname="C1">C1</li>
<li data-itemname="B23">B23</li>
<li data-itemname="D52">D54</li>
...
JS
$('#my-list').each(function() {
var $widget = $(this),
$itemname = $(this).attr('data-itemname'),
...
$widget.on('click', function() {
$currentlist = document.getElementById('show-list').innerHTML;
// create current list array
var str = $currentlist; // C1, B23, D54, etc
var array = str.split(',');
// convert item number to string
var itemtocheck = $itemname.toString(); // works OK
// check if value in array
var result = $.inArray(itemtocheck, array); // so far so good
if (result == 0) {
selecteditems = $currentlist.replace(itemtoremove+',', '');
$('#show-list').html(selecteditems); // Works only once
return false;
} else {
$('#show-list').append($itemname+','); // will add OK
return false;
}
});
...
HTMLはまた、私はこの機能を簡素化することができると感じ?
各アイテムリストにIDを設定する必要があります。 – Farshid
$( "item id")。remove; – Farshid
問題を再現可能にする完全な例を示してください。 '$ itemname'はどこから来たのか、どこから来たのかは全く分かりません。 「mcve」とお読みください。 – CBroe