선택한 요소를 다른 요소로 대체하는 간단한 방법이 있습니까?jQuery : 다른 요소로 요소를 대체 하시겠습니까?
나는 replaceWith
이 그렇게 할 것이라고 생각했지만 실제로는 모든 요소가 제공된 요소로 대체되었습니다. 그래서 제 경우에는 실제로 요소를 복제합니다 (모든 경우에 해당하므로).
var html = '<option value="8">15% Discount</option><option value="9">18% Discount</option>'
$('.discount_select option:not(:first)').replaceWith(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="discount_select">
<option value="0"></option>
<option value="4">45% Discount</option>
<option value="5">10% Discount</option>
</select>
결과는 새로운 옵션이 중복되어 있다는 것입니다 :
이 예를 생각해 보자. 두 개의15%
과 두 개의
18%
옵션이 있습니다. 하지만 선택한 옵션을 제공된 옵션으로 바꿀 필요가 있습니다 (모든 옵션마다 하나씩).
현재 위치를 볼 수 있습니다 https://jsfiddle.net/6on7mzqw/
P.S.을 먼저 필요한 요소를 제거하고 새 요소를 추가하는 것이 가능할 수도 있지만 더 간단한 방법 일 수 있습니까?
선택기가 두 가지 옵션을 포착하고 둘 다 전체 HTML로 바꿀 것이기 때문입니다. 특정 선택자를 만들어보십시오. – Marnix
@ 마 닉스 나는 그것을 알고, 나는 질문에서 설명했다. 어떻게하면 더 구체적으로 만들 수 있습니까? – Andrius
새로운 소스를 단일 HTML 문자열 형식으로 사용하므로 쓸모없는 옵션을 제거하고 새 옵션을 한 번에 넣는 것이 좋습니다. 데이터 구조를 변경할 수 있습니까? – dferenc