와 HTML 블록을 복사합니다. 결과 :나는 같은 HTML 코드를 태그 스크립트
<div>
<div id="1-text">text></div>
<script>$("#text").val('some value');</script>
</div>
태그 내부 스크립트 ID를 변경하고 싶습니다. $("#1-text").val('other value');
어떻게해야합니까?
와 HTML 블록을 복사합니다. 결과 :나는 같은 HTML 코드를 태그 스크립트
<div>
<div id="1-text">text></div>
<script>$("#text").val('some value');</script>
</div>
태그 내부 스크립트 ID를 변경하고 싶습니다. $("#1-text").val('other value');
어떻게해야합니까?
외부 선택 변수를 선택하면 무엇을 선택할지 쉽게 알 수 있습니다. 당신은 루프를 사용하여 값을 반복한다면 그래서 당신은 같은 것을 할 수 있습니다
$("#text_"+i).val('other value');
또한 카운터를 설정할 수 있습니다와 같은 새로운 div의이 내가 단위를 추가됩니다. 그래서 유연합니다.
최종 목표는 정확히 모르겠지만 <script>
태그에서 javascript를 조작하려는 경우이 방법론을 권장하지 않습니다. 나는 그것이 성가신 것이라고 믿는다.
좋은 방법이지만 유연한 솔루션을 모색 중입니다. datepicker 및 전화 마스크와 같은 스크립트 내부에는 많은 다른 기능이 있습니다. HTML 블록을 복사하면 이전 블록의 모든 기능을 가져오고 싶습니다. – Dev
전체 HTML 블록을 복사하려면이 블록에 인라인 자바 스크립트 코드를 컨테이너로 바인딩해야합니다. 이드는 아니야. 따라서 블록을 이동하거나 복사 할 때 스크립트는 컨테이너와 관련된 요소를 찾을 수 있습니다.
<div id="containerOne" class="js-container">
<div class="js-text" data-text="some value">some value</div>
<script>
var $el = $("script").last().closest(".js-container").find(".js-text");
$el.text($el.data("text"));
</script>
</div>
여기에서는 ID가 아닌 클래스별로 요소에 액세스 할 수 있습니다. "js-" 접두어를 사용하면 CSS 스타일링이 아닌 javascript 조작 만 가능합니다.
또한 스크립트 자체를 변경할 필요가 없습니다. "data-" 속성을 통해 값을 변경할 수 있습니다.
외부 스크립트에서 다양한 방법으로 모든 복제 논리를 캡슐화 할 수 있습니다. 예 :
var myModule = {
clone: function(containerSelector) {
var $donorEl = $(containerSelector);
var $donorScript = $donorEl.find('script');
$script = $("<script />");
$script.text($donorScript.text());
$recipientEl = $donorEl.clone();
$recipientEl.attr('id', 'containerTwo');
var newValue = 'other value';
$('.js-text', $recipientEl).data('text', newValue);
$('body').append($recipientEl);
$('script', $recipientEl).replaceWith($script);
}
};
myModule.clone('#containerOne');
the working example을 볼 수 있습니다.
나는 스크립트 요소를 복제하는 것이 더 좋은 해결책이라고 생각한다. div에는 값이 없습니다. – epascarello
나는 이것을하지 않을 것을 제안 할 것이다. script 요소에서 JS를 편집하는 것은 매우 어려울 것입니다. – evolutionxbox
복사 HTML이 필요합니다. 처리기가 필요합니다. 다른 방법으로 어떻게 처리 할 수 있습니까? 정확한 금액 블록을 모르므로 모든 처리기를 한 번에 쓸 수 없습니다. – Dev