2015-06-21 50 views
0

因此,在您完成所有幫助之後,我已經達到了將內容區域添加輸入的階段,現在我想要在用戶單擊紅色十字按鈕時刪除列表項目對,我如何將目標類添加到函數外部的標籤'click-link'?更新:爲每個數組項目添加Li標籤

感謝

(function(){ 
 

 
    var clickGo = document.querySelector('.button-go'); 
 
    var searchInput = document.querySelector('.search-input'); 
 
    var list = document.querySelector('.list'); 
 
    var listArray = []; 
 

 
    var clickGoFunc = function() { 
 
      var searchValue = searchInput.value; 
 

 
      // check if input field is empty 
 
      if(searchValue === ""){ 
 
       
 
       alert("please put a value in the input field"); 
 
      
 
      }else{ 
 

 
       // check if list item already exists in the array named listArray 
 
       if(listArray.indexOf(searchValue) == -1){ 
 
        listArray.push(searchValue); 
 

 
         // Function for creating loop for added array items and enclosing each array item inside <li> 
 
         //Also adding a close button to each array item by adding <a> Tag 
 
         var runIt = function(){ 
 
           for(var i= 0; i < listArray.length; i++){ 
 
            var liTag = document.createElement('li'); 
 
            var removeItem = document.createElement('span'); 
 
            var closeLink = document.createElement('a'); 
 
            closeLink.className = "close-link"; 
 
            closeLink.setAttribute('href', "#"); 
 
            closeLink.textContent = 'X'; 
 

 
            // adding <a> tag inside span 
 
            removeItem.appendChild(closeLink); 
 

 
            liTag.textContent = listArray[i].toUpperCase(); 
 
            list.appendChild(liTag); 
 
            liTag.appendChild(removeItem); 
 
            list.appendChild(liTag) 
 
           } 
 
           // end of for loop 
 
         }; 
 
         // end of runit 
 

 
         // clearing ul.list container before reloading array items. 
 
         list.innerHTML = ""; 
 

 
         // calling runIt funtion which contains for loop for all the array items 
 
         list.appendChild(runIt()); 
 

 
       }else{ 
 
        alert("value already exisits"); 
 
       } 
 
       // end of if and else statement which is checking if value is already there is the array 
 
       // pushing new values in the listArray array 
 
       // wrapping new array items in li tags and adding close button on each array item 
 
      } 
 
      // if statement checking if the input field is empty , if not it runs other function which checks following 
 
        // end of if and else statement which is checking if value is already there is the array 
 
        // pushing new values in the listArray array 
 
        // wrapping new array items in li tags and adding close button on each array item 
 
      } 
 
      // end of clickGoFunc 
 

 

 
    //calling function 
 
    clickGo.addEventListener('click', function(){ 
 
      clickGoFunc() 
 
    }); 
 

 
}());
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}.container-header{background-color:#00628B}.row-header{min-height:120px;text-align:center;color:#fff;font-size:50px;font-family:oswald;padding-top:35px}.container-search-bar{background-color:#E6E6DC;min-height:75px}.container-search-inner .input-group{margin-top:20px}.container-content{padding-top:50px}.list li{background-color:#6C6C6C;padding:10px;margin-bottom:10px;color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.close-link{color:#fff;background-color:red;padding:3px;border-radius:3px}.list li span{float:right}
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Search NOMO</title></title> 
 
\t <link rel="stylesheet" href="assets/bootstrap/dist/css/bootstrap.min.css"> 
 
    <link rel="stylesheet" href="assets/stylesheets/css/style.min.css"> 
 
</head> 
 
<body> 
 
    <div class="container-fluid container-wrapper"> 
 
     <div class="row row-wrapper"> 
 
     <div class="container-fluid container-header"> 
 
       <div class="row row-header"> 
 
       Search NOMO 
 
       </div> <!-- row-header --> 
 
     </div> <!-- container-header --> 
 
     <div class="container-fluid container-search-bar"> 
 
      <div class="row row-search"> 
 
       <div class="container container-search-inner"> 
 
        <div class="row"> 
 
        <div class="col-lg-12"> 
 
         <div class="input-group"> 
 
          <input type="text" class="form-control search-input" placeholder="Add to List..."> 
 
          <span class="input-group-btn"> 
 
          <button class="btn btn-default button-go" type="button">Add</button> 
 
          </span> 
 
         </div><!-- /input-group --> 
 
         </div><!-- /.col-lg-6 --> 
 
       </div> <!-- row --> 
 
       </div> <!-- container-search-inner --> 
 
      </div> <!-- row-search --> 
 
     </div> <!-- container-search-bar --> 
 
     <div class="container container-content"> 
 
      <ul class="list"> 
 
       
 
      </ul> 
 

 
     </div> 
 
     </div> <!--row-wrapper --> 
 
    </div> <!-- container-wrapper--> 
 

 
    <!-- javascripts --> 
 
    <script src="assets/jquery/dist/jquery.min.js"></script> 
 
<script src="assets/bootstrap/dist/js/bootstrap.min.js"></script> 
 
<script src="assets/js/script.min.js"></script> 
 

 
</body> 
 
</html>

回答

0

你必須li -elements追加到一些ul元素。您只需要數組來檢查現有值。

有了這些知識,你的代碼可以簡化爲(見代碼和HTML註釋):

var clickGo = document.querySelector('.button-go'); 
 
var searchInput = document.querySelector('.search-input'); 
 
var currentValues = []; // keep track 
 
clickGo.onclick = function() { 
 
    var searchValue = searchInput.value; 
 
    if (searchValue === "") { // check empty 
 
    alert("please put a value in the input field"); 
 
    } else if (currentValues.indexOf(searchValue) == -1) { // check existing 
 
    currentValues.push(searchValue); 
 
    var liTag = document.createElement('li'); 
 
    liTag.textContent = searchValue; 
 
    // append the new li-tag 
 
    document.querySelector('[data-vals]').appendChild(liTag); 
 
    } else { alert("value already exisits"); } 
 
};
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}.container-header{background-color:#00628B}.row-header{min-height:120px;text-align:center;color:#fff;font-size:50px;font-family:oswald;padding-top:35px}.container-search-bar{background-color:#E6E6DC;min-height:75px}.container-search-inner .input-group{margin-top:20px}.container-content{padding-top:50px}
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Search NOMO</title></title> 
 
\t <link rel="stylesheet" href="assets/bootstrap/dist/css/bootstrap.min.css"> 
 
    <link rel="stylesheet" href="assets/stylesheets/css/style.min.css"> 
 
</head> 
 
<body> 
 
    <div class="container-fluid container-wrapper"> 
 
     <div class="row row-wrapper"> 
 
     <div class="container-fluid container-header"> 
 
       <div class="row row-header"> 
 
       Search NOMO 
 
       </div> <!-- row-header --> 
 
     </div> <!-- container-header --> 
 
     <div class="container-fluid container-search-bar"> 
 
      <div class="row row-search"> 
 
       <div class="container container-search-inner"> 
 
        <div class="row"> 
 
        <div class="col-lg-12"> 
 
         <div class="input-group"> 
 
          <input type="text" class="form-control search-input" placeholder="Add to List..."> 
 
          <span class="input-group-btn"> 
 
          <button class="btn btn-default button-go" type="button">Add</button> 
 
          </span> 
 
          <ul data-vals></ul><!-- values container --> 
 
         </div><!-- /input-group --> 
 
         </div><!-- /.col-lg-6 --> 
 
       </div> <!-- row --> 
 
       </div> <!-- container-search-inner --> 
 
      </div> <!-- row-search --> 
 
     </div> <!-- container-search-bar --> 
 
     <div class="container container-content"> 
 

 
     </div> 
 
     </div> <!--row-wrapper --> 
 
    </div> <!-- container-wrapper--> 
 

 
    <!-- javascripts --> 
 
    <script src="assets/jquery/dist/jquery.min.js"></script> 
 
<script src="assets/bootstrap/dist/js/bootstrap.min.js"></script> 
 
<script src="assets/js/script.min.js"></script> 
 

 
</body> 
 
</html>

0
  1. 取消已連接到window點擊事件監聽器。這不是必需的。
  2. 嘗試設置HTML元素的文本時,請勿使用appendChild。相反,請設置textContent
  3. 使用appendChild單擊處理程序爲clickGocontainerContent追加新li元素

var clickGo = document.querySelector('.button-go'); 
 
var searchInput = document.querySelector('.search-input'); 
 
var containerContent = document.querySelector('.container-content'); 
 
var listArray = []; 
 
clickGo.onclick = function() { 
 
    var searchValue = searchInput.value; 
 
    if (searchValue === "") { 
 
    alert("please put a value in the input field"); 
 

 
    } else { 
 
    //checking if array already contains added list item 
 
    //if it is not, push the item to the array 
 
    if (listArray.indexOf(searchValue) == -1) { 
 
     listArray.push(searchValue); 
 

 
     // Adding li tags to the array list items 
 
     var liTag = document.createElement('li'); 
 

 
     for (var i = 0; i < listArray.length; i++) { 
 
     liTag.textContent = listArray[i]; 
 

 
     containerContent.appendChild(liTag); 
 
     } 
 
     // if arry contains already contains list item then alert following message 
 
    } else { 
 
     alert("value already exisits"); 
 
    } 
 
    } 
 
};
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}.container-header{background-color:#00628B}.row-header{min-height:120px;text-align:center;color:#fff;font-size:50px;font-family:oswald;padding-top:35px}.container-search-bar{background-color:#E6E6DC;min-height:75px}.container-search-inner .input-group{margin-top:20px}.container-content{padding-top:50px}
<!DOCTYPE html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Search NOMO</title> 
 
    </title> 
 
    <link rel="stylesheet" href="assets/bootstrap/dist/css/bootstrap.min.css"> 
 
    <link rel="stylesheet" href="assets/stylesheets/css/style.min.css"> 
 
</head> 
 

 
<body> 
 
    <div class="container-fluid container-wrapper"> 
 
    <div class="row row-wrapper"> 
 
     <div class="container-fluid container-header"> 
 
     <div class="row row-header"> 
 
      Search NOMO 
 
     </div> 
 
     <!-- row-header --> 
 
     </div> 
 
     <!-- container-header --> 
 
     <div class="container-fluid container-search-bar"> 
 
     <div class="row row-search"> 
 
      <div class="container container-search-inner"> 
 
      <div class="row"> 
 
       <div class="col-lg-12"> 
 
       <div class="input-group"> 
 
        <input type="text" class="form-control search-input" placeholder="Add to List..."> 
 
        <span class="input-group-btn"> 
 
          <button class="btn btn-default button-go" type="button">Add</button> 
 
          </span> 
 
       </div> 
 
       <!-- /input-group --> 
 
       </div> 
 
       <!-- /.col-lg-6 --> 
 
      </div> 
 
      <!-- row --> 
 
      </div> 
 
      <!-- container-search-inner --> 
 
     </div> 
 
     <!-- row-search --> 
 
     </div> 
 
     <!-- container-search-bar --> 
 
     <div class="container container-content"> 
 

 
     </div> 
 
    </div> 
 
    <!--row-wrapper --> 
 
    </div> 
 
    <!-- container-wrapper--> 
 

 
    <!-- javascripts --> 
 
    <script src="assets/jquery/dist/jquery.min.js"></script> 
 
    <script src="assets/bootstrap/dist/js/bootstrap.min.js"></script> 
 
    <script src="assets/js/script.min.js"></script> 
 

 
</body> 
 

 
</html>

0

我很抱歉,由於變化和使這項工作,我被移除並添加的東西,並忘記在我粘貼的代碼中添加UL標籤,我試圖學習JavaScript,這是一個真正的幫助,如果你有關於良好的網站和書籍學習Java腳本的建議,請讓我知道。

我覺得我會在這裏張貼的東西很多,以獲得幫助

感謝您的耐心

相關問題