2017-10-09 12 views
0

コンテンツをテキストボックスに入れるときに2つのリストを、優先度の高いToDoリストに1つのリストを、そして不要なコンテンツを削除するときに2つのリストをスローします。2つのリストからHTMLリストアイテムを削除する方法

function chapter05() { 
 
    var uplist = document.getElementsByClassName('ch5')[0]; 
 

 
    btn_colors = { 
 
    'hi': 'hiP', 
 
    'med': 'medP', 
 
    'low': 'lowP' 
 
    } 
 
    radios = document.getElementsByName('rgPrior'); 
 

 
    for (var i = 0, length = radios.length; i < length; i++) { 
 
    if (radios[i].checked) { 
 
     btn_selected_color = (btn_colors[radios[i].value]); 
 
     break; 
 
    } 
 
    } 
 

 
    var todo = document.getElementById('txtAdd').value; 
 
    var entry = document.createElement('li'); 
 
    entry.className = btn_selected_color; 
 
    entry.appendChild(document.createTextNode(todo)); 
 
    uplist.appendChild(entry); 
 

 
    var botlist = document.getElementsByClassName('ch5')[1]; 
 

 
    var todo = document.getElementById('txtAdd').value; 
 
    var entry = document.createElement('li'); 
 
    var radio = document.createElement("input"); 
 
    radio.type = "radio"; 
 
    radio.name = radio; 
 
    radio.value = radio; 
 

 
    entry.appendChild(document.createTextNode("Delete this item: " + todo + " ")); 
 
    entry.appendChild(radio); 
 
    botlist.appendChild(entry); 
 

 
    document.getElementById('txtAdd').value = " "; 
 
} 
 

 

 
function chapter05_del() { 
 
}
.hiP { 
 
    color: red; 
 
} 
 

 
.medP { 
 
    color: blue; 
 
} 
 

 
.lowP { 
 
    color: green; 
 
} 
 

 
.ch5 { 
 
    padding-left: 30px; 
 
}
<p style="">A to-do list</p> 
 

 
<ol class="ch5"></ol> 
 

 
<p>&nbsp;</p> 
 
<p> 
 
    <label for="txtAdd">New thing to do:</label> 
 
    <input name="txtAdd" type="text" id="txtAdd" size="50" maxlength="50" /> 
 
</p> 
 
<p>Set Priority</p> 
 
<p> 
 
    <label> 
 
    <input type="radio" name="rgPrior" value="hi" id="rgPrior_0"/>High 
 
    </label> 
 
    <br/> 
 
    <label> 
 
    <input type="radio" name="rgPrior" value="med" id="rgPrior_1"/>Meduim 
 
    </label> 
 
    <br/> 
 
    <label> 
 
    <input type="radio" name="rgPrior" value="low" id="rgPrior_2"/>Low 
 
    </label> 
 
    <br/> 
 
</p> 
 
<p>&nbsp;</p> 
 

 
<p> 
 
    <input type="button" name="btnAdd" id="btnAdd" value="Add a value" onClick="chapter05()" /> 
 
</p> 
 
<br /> 
 

 
<p>Delete Items</p> 
 

 
<ol class="ch5"></ol> 
 

 
<p> 
 
    <input type="button" name="btnDel" id="btnDel" value="Delete an item" onClick="chapter05_del()" /> 
 
</p> 
 

 
</article>

最初のボタンは、第二のコンテンツを削除することである(リストにコンテンツを追加)入力ページ上のデータです。

テキストエリアに何かが置かれ、優先ラジオボタンがクリックされたときに、それが作成されたリストにto-doリストとdeleteの両方に追加されるように、最初の部分が必要なように働いています削除リストはその項目の横にラジオボタンを作成します。私が達成しようとしてきたのは、chapter05_del()関数でchapter05()関数の削除リストのラジオボタンをクリックすると、対応する項目が両方のto-リスト、および削除リストが含まれます。

TL; DRユーザーが削除する要素を選択したら、両方のリストから削除します。

+0

私の解決策は、あなたのために働いていましたか? –

+0

ありがとう、ありがとう!私は遅刻の応答をお詫び申し上げます。 – Wheeze

+0

喜んで助けました。他人を助けることができるように、解決策を受け入れる/アップアップしてください。 –

答えて

0

下記の更新されたコードを見つけることができます。コード内のコメントchapter05

、私が作成したラジオ要素に名前と値を与えるために、2つのラインの下に変更しました:

radio.name = "delete"; 
radio.value = todo; 

function chapter05() { 
 
\t var uplist = document.getElementsByClassName('ch5')[0]; 
 

 
\t btn_colors = { 
 
\t \t 'hi': 'hiP', 
 
\t \t 'med': 'medP', 
 
\t \t 'low': 'lowP' 
 
\t } 
 
\t radios = document.getElementsByName('rgPrior'); 
 

 
\t for (var i = 0, length = radios.length; i < length; i++) { 
 
\t \t if (radios[i].checked) { 
 
\t \t \t btn_selected_color = (btn_colors[radios[i].value]); 
 
\t \t \t break; 
 
\t \t } 
 
\t } 
 

 
\t var todo = document.getElementById('txtAdd').value; 
 
\t var entry = document.createElement('li'); 
 
\t entry.className = btn_selected_color; 
 
\t entry.appendChild(document.createTextNode(todo)); 
 
\t uplist.appendChild(entry); 
 

 
\t var botlist = document.getElementsByClassName('ch5')[1]; 
 

 
\t var todo = document.getElementById('txtAdd').value; 
 
\t var entry = document.createElement('li'); 
 
\t var radio = document.createElement("input"); 
 
\t radio.type = "radio"; 
 
\t radio.name = "delete"; 
 
\t radio.value = todo; 
 

 
\t entry.appendChild(document.createTextNode("Delete this item: " + todo + " ")); 
 
\t entry.appendChild(radio); 
 
\t botlist.appendChild(entry); 
 

 
\t document.getElementById('txtAdd').value = " "; 
 
} 
 

 
function chapter05_del() { 
 
\t var botlist = document.querySelectorAll('.ch5')[1]; 
 
\t var li = botlist.querySelectorAll("li input[type='radio']:checked"); 
 
\t 
 
\t if (li.length > 0) { //If user selected a radio button 
 
\t \t var valToDelete = li[0].value; //Get radion button value 
 
\t \t li[0].parentNode.parentNode.removeChild(li[0].parentNode); //Remove the todo item from delete list 
 

 
\t \t var toplist = document.querySelectorAll('.ch5')[0]; //Get handle to top to-do 
 
\t \t //Get handle to all li and loop 
 
\t \t [].slice.call(toplist.querySelectorAll("li")).map(function (el){ 
 
\t \t if (el.innerText.trim() === valToDelete.trim()) el.parentNode.removeChild(el); 
 
\t \t }) 
 
\t } 
 
}
.hiP { 
 
\t color: red; 
 
} 
 

 
.medP { 
 
\t color: blue; 
 
} 
 

 
.lowP { 
 
\t color: green; 
 
} 
 

 
.ch5 { 
 
\t padding-left: 30px; 
 
}
<p style="">A to-do list</p> 
 

 
<ol class="ch5"></ol> 
 

 
<p>&nbsp;</p> 
 
<p> 
 
\t <label for="txtAdd">New thing to do:</label> 
 
\t <input name="txtAdd" type="text" id="txtAdd" size="50" maxlength="50" /> 
 
</p> 
 
<p>Set Priority</p> 
 
<p> 
 
\t <label> 
 
<input type="radio" name="rgPrior" value="hi" id="rgPrior_0"/>High 
 
</label> 
 
\t <br/> 
 
\t <label> 
 
<input type="radio" name="rgPrior" value="med" id="rgPrior_1"/>Meduim 
 
</label> 
 
\t <br/> 
 
\t <label> 
 
<input type="radio" name="rgPrior" value="low" id="rgPrior_2"/>Low 
 
</label> 
 
\t <br/> 
 
</p> 
 
<p>&nbsp;</p> 
 

 
<p> 
 
\t <input type="button" name="btnAdd" id="btnAdd" value="Add a value" onClick="chapter05()" /> 
 
</p> 
 
<br /> 
 

 
<p>Delete Items</p> 
 
<ol class="ch5"></ol> 
 
<p> 
 
\t <input type="button" name="btnDel" id="btnDel" value="Delete an item" onClick="chapter05_del()" /> 
 
</p>

関連する問題