我有以下HTML:鏈式方法調用不適用於原始或克隆的元素,爲什麼?
<input type="text" id="condition_value_1" style="display: none" />
<button id="showme">Make Select2</button>
<button id="clickme">Make Input</button>
然後看看下面的jQuery:
$(function() {
var cond1 = $('#condition_value_1');
var cloned_cond1 = cond1.clone();
var cond1_select = '<select name="condition_value_1" id="condition_value_1" multiple="multiple"><option></option><option value="1">Opt1</option><option value="2">Opt2</option></select>';
$('#showme').click(function() {
cond1.removeAttr('style').replaceWith(cond1_select).select2({
placeholder: 'Select choice'
});
});
$('#clickme').click(function() {
if ($('#condition_value_1').hasClass('select2-hidden-accessible')) {
$("#condition_value_1").select2('destroy');
}
$('#condition_value_1').replaceWith(cloned_cond1).removeAttr('style');
});
});
你可以試試上面HERE的代碼。
現在只要您點擊#showme
您應該刪除attr樣式,用給定的元素替換原始元素並將其轉換爲Select2,最後一部分不起作用。
另一方面,如果你點擊#clickme
你應該銷燬前面的Select2,用克隆的元素替換#condition_value_1
,並刪除attr樣式,因爲克隆有該屬性,但這也不起作用。
這個想法是在元素之間切換,並根據需要打開/關閉屬性。
也許我在這裏失去了一些東西,但我不知道是什麼。有任何幫助我嗎?
remove屬性不會更新屬性.....而是使用'show()'方法, –
'cond1.replaceWith(cloned_cond1); cond1.removeAttr('style');'是向後的,不是嗎? 'cloned_cond1.removeAttr( '風格'); cond1.replaceWith(cloned_cond1);' – Gavin
@PranavCBalan無法正常工作 – ReynierPM