私はCSV文字列を作成していますので、ユーザーがdivをクリックするとすべて - 5文字の文字列が非表示フィールドに渡されます。私は新しい値を追加して、CSV文字列を作成します - 完了したら - テキストボックスに表示する - CSVに渡された値がすでに存在する場合 - それを削除してから、前と同じようにCSVをテキストフィールドに表示します。私は以下の持っているが、それだけでは動作しません...Javascript:CSVに値を追加する - CSVに既に存在する場合 - CSVから削除する
function newQuery(val, id) {
var xy = document.getElementById(id);
var x = parent.document.getElementById('txtCriteria');
var myValue = parent.document.getElementById('txtCriteria').value;
var hdn = document.getElementById("hdnSearch");
hdn.value += "," + val;
var element = hdn.value;
var fin;
var leadingComma = element.substring(1, 0).toLowerCase();
var trailingComma = element.substring(element.length - 1);
// Check for leading comma
if (leadingComma == ",") {
fin = element.substring(1);
}
// Check for trailing comma
if (element.charAt(element.length - 1) == ",") {
fin = element.slice(0, -1);
}
if (x.value.search(val) == 0) {
alert('Already exists');
fin.replace(val, "");
x.value = fin;
// Set image to checked
xy.src = 'bullet_plus.png';
}
else if (element.search(val) > 0) {
alert('New Selection: ' + fin);
x.value = fin;
// Set image to checked
xy.src = 'bullet_tick.png';
}
}
私がいることを見つけますストレージの混乱の仕方。文字列キーの存在を、セットに含まれているかどうかのtrue/falseに設定します。配列からプッシュ/スライスする方が意味があります。 – Raynos
@Raynos - 毎回リスト全体をトラバースする必要があることに留意してください。明確な項目の集合は、集合の定義とほぼ同じです。 –
私はあなたのポイントを見ます。 – Raynos