2017-11-22 1 views
1

새 div의 드롭 다운 목록에서 선택한 모든 옵션의 HTML을 출력하려고합니다. 그러나 새 체크 박스를 선택할 때마다 컨테이너가 선택한 값으로 업데이트되고 드롭 다운 목록에서 이전에 선택한 모든 값이 추가됩니다. 등등. 체크 박스 HTML을 한 번만 출력하려면 어떻게합니까?모든 배열 항목을 한 번만 추가하십시오.

Heres는 내 JS 코드 :

let emptyArr = []; 
$('.dropdown-select-container').find("option:selected").each(function(){ 
    emptyArr.push($(this).html()); 
}); 

for (i in emptyArr) { 
    let outputResult = "<div class='arr-item'>" + emptyArr[i] + "</div>" 
    $("#container").append(outputResult); 
} 
+1

. 왜'select'가없는'option'을 가지고 있고 그 안에'// Checkboxes List '를 가지고 있습니까? 왜'option'에 체크 박스가 있을까요? –

+0

죄송하지만 HTML 부분을 건너 뛰었습니다. jquery에 더 초점을 맞추고 싶었습니다. – IsaaK08

+1

^잘못된 HTML 태그가있는 경우 jQuery가 예상대로 작동하지 않습니다. –

답변

1

$(".dropdown-select-container").on("change", function() { 
 

 
    var emptyArr = []; 
 
    // Go through the select, find all selected options. 
 
    $('.dropdown-select-container').find(":selected").each(function() { 
 
    emptyArr.push($(this).html()); 
 
    }); 
 
    // remove all current content. 
 
    $("#container").empty(); 
 
    
 
    // go through the array line by line, 
 
    // and create a div for each. 
 
    for (var i = 0; i < emptyArr.length; i++) { 
 
    console.log(emptyArr); 
 
    var outputResult = "<div class='arr-item'>" + emptyArr[i] + "</div>" 
 
    $("#container").append(outputResult); 
 
    } 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="container"> 
 

 
</div> 
 

 
<label>Selection list</label> 
 

 
<select class="dropdown-select-container" multiple> 
 
    <option value="AL">Alabama</option> 
 
    <option value="AK">Alaska</option> 
 
    <option value="AZ">Arizona</option> 
 
    <option value="AR">Arkansas</option> 
 
    <option value="CA">California</option> 
 
    <option value="CO">Colorado</option> 
 
    <option value="CT">Connecticut</option> 
 
    <option value="DE">Delaware</option> 
 
    <option value="DC">District Of Columbia</option> 
 
    <option value="FL">Florida</option> 
 
    <option value="GA">Georgia</option> 
 
    <option value="HI">Hawaii</option> 
 
    <option value="ID">Idaho</option> 
 
    <option value="IL">Illinois</option> 
 
    <option value="IN">Indiana</option> 
 
    <option value="IA">Iowa</option> 
 
    <option value="KS">Kansas</option> 
 
    <option value="KY">Kentucky</option> 
 
    <option value="LA">Louisiana</option> 
 
    <option value="ME">Maine</option> 
 
    <option value="MD">Maryland</option> 
 
    <option value="MA">Massachusetts</option> 
 
    <option value="MI">Michigan</option> 
 
    <option value="MN">Minnesota</option> 
 
    <option value="MS">Mississippi</option> 
 
    <option value="MO">Missouri</option> 
 
    <option value="MT">Montana</option> 
 
    <option value="NE">Nebraska</option> 
 
    <option value="NV">Nevada</option> 
 
    <option value="NH">New Hampshire</option> 
 
    <option value="NJ">New Jersey</option> 
 
    <option value="NM">New Mexico</option> 
 
    <option value="NY">New York</option> 
 
    <option value="NC">North Carolina</option> 
 
    <option value="ND">North Dakota</option> 
 
    <option value="OH">Ohio</option> 
 
    <option value="OK">Oklahoma</option> 
 
    <option value="OR">Oregon</option> 
 
    <option value="PA">Pennsylvania</option> 
 
    <option value="RI">Rhode Island</option> 
 
    <option value="SC">South Carolina</option> 
 
    <option value="SD">South Dakota</option> 
 
    <option value="TN">Tennessee</option> 
 
    <option value="TX">Texas</option> 
 
    <option value="UT">Utah</option> 
 
    <option value="VT">Vermont</option> 
 
    <option value="VA">Virginia</option> 
 
    <option value="WA">Washington</option> 
 
    <option value="WV">West Virginia</option> 
 
    <option value="WI">Wisconsin</option> 
 
    <option value="WY">Wyoming</option> 
 
</select>
당신이 #container의 내용을 교체 반대로 jQuery의 append, 당신의 #container 항상 가 (일명 추가) outputResult의 내용을 추가합니다 사용하고 있기 때문에

. 대신과 같이 outputResult와 내용을 #container의 내용을 비우고 대체 할 html 기능을 사용한다 : 이해가 안

$("#container").html(outputResult); 
+2

아빠 껌 그것, 나는 거기에 타고 있었다. ㅎ. 멋지게 말했다, @ 크리스찬 산토스. – Snowmonkey

1

을 감안할 때 불완전한 데이터, 우리는 우리가 할 수있는 않습니다. 앞으로는 완전한 정보로 무엇을하려하는지 진단하는 것이 언제나 쉽습니다.

그러나 이것은 모두 과도합니다. 귀하의 게시물을 다시 읽고, 당신은 왜 aab, 그 다음 aababc을 받았는지, 더 많은 수표를 추가 할 때 무엇이든지 물었습니다. 간단한 대답은 div에 점점 더 많은 내용을 추가하기 때문입니다.하지만 이미있는 것을 제거하지 않기 때문입니다. 추가하기 전에 해당 컨테이너 div에서 empty()를 호출하기 만하면됩니다. 나가 의미하는 무슨을보기 위하여 아래에보십시오.

관련 문제