jquery의 .html()에서 특정 요소 (#add_phone이있는 버튼)를 삭제해야합니다..html()에서 요소 제외
그래서 여기 있습니다. 처음에는 필드 (전화 번호) + 선택 (전화 유형) + 버튼 (#add_phone)이 있으며 세 개 모두가 div로 컨테이너로 묶여 있습니다. 버튼을 클릭하면 .html()을 통해 다시 생성됩니다. JS는 다음과 같습니다
$('#add_phone').click(function() {
$('div.multiple_number:last').after('<div id="phone_div_id' + phone_div_id + '" class="multiple_number">'+ $('div.multiple_number').html() +'</div>');
...
//append a remove [-] button, etc...
});
을 여기에 HTML의 :
<div class="multiple_number" id="phone_div_id0">
<label>Phone Number(s):</label>
<input name="phone" id="phone[]" placeholder="Phone Number"/>
<select name="phone_type[]" id="phone_type">
<option value="1">Mobile</option>
<option value="2">Home</option>
<option Value="3">Office</option>
<option Value="3">Fax</option>
</select>
<input type="button" name="add_phone" class="add_phone_class" id="add_phone" value="ADD MORE" />
</div>
그래서 효과, 내가 형태에 대해 여러 개의 전화 번호를 만드는 오전. 그러나 여기에 문제가 있습니다. 내부는 입력 유형 = "버튼"(
#add_phone
버튼)입니다. 그리고 그것을 .html()에서 제외하고 싶습니다. 내가 시도
:
$('div.multiple_number:not(#add_phone)').html()
$('div.multiple_number:not(input#add_phone)').html()
$('div.multiple_number:not(#add_phone)').not(#add_phone).html()
$('div.multiple_number:not(#add_phone)').not(input#add_phone).html()
대신 ID 이름을 사용하는 클래스 이름 대응. 미적 이유 때문에 #add_phone 버튼을 div 외부에 배치하고 싶지 않습니다.
당신은 천재입니다.당신은 왜'not'가 제 경우에는 작동하지 않는지에 대한 답을 얻었습니다. 더 나은 해결책을 얻었습니다. 말할 것도없이, 당신은 더 읽기 쉽습니다. 그리고 오 ... .click()이 새로 생성 된 DOM을 찾을 수 없기 때문에 .html()에 의해 만들어진 .on() 또는 .live()를 사용해야하는 이유는 무엇입니까? 이제 새로 만든 전화 입력에 #remove_phone 버튼을 추가하면 .click()을 사용하여 #remove_phone 버튼을 찾을 수 있습니다. 감사. – Fred
@Fred 당신이 맞아요. 왜냐하면'.on()'이나'.live()'(그러나'.on()'이 선호되는 방법입니다). '.clone (true)'를 사용하는 한 새로 생성 된 입력을 원한다면'.click()'을 사용할 수 있어야합니다. –
유익하고 유용합니다. 감사합니다. – Fred