「的劇本是正常工作的一些變化之前,但你不能確定哪一個」
有沒有關於多的信息導致此問題的情況,因此我將假設一些場景來幫助您找到解決方案。
場景1:假設在腳本運行時,元素在DOM中不可用,因此當您嘗試訪問屬性checked
時,它將失敗。
確保只有在元素可用且準備就緒的情況下才能訪問屬性!見(https://learn.jquery.com/using-jquery-core/document-ready/),例如:
$(document).ready(function() {
if ($("#ship-to-different-address-checkbox").get(0).checked) {
$("#ship-to-different-address-checkbox").get(0).checked=false;$(".shipping_address").addClass("dhl-hide");
$("#ship-to-different-address-checkbox").trigger("change");
}
});
爲什麼不放在最接近?
場景2:元素ID發生變化,所以選擇器返回未定義狀態。仔細檢查該元素的ID,檢查是否該元素存在並且是一個DOM元素試圖訪問屬性,並確認所選擇的element
或DOM元素是正確類型的之前和具有屬性checked
,例如:
// ID should always refer to a single element,
// it's not valid to have more then one element ID in the page
// So, expect only one:
var element = $("#ship-to-different-address-checkbox")
// You should do this for any other selector/element
if (typeof element !== 'undefined' && element.is(":checkbox") && element.checked) {
element.checked.checked = false
// anything else
element.trigger("change");
}
你當然可以,把它們放在一起,比如:
$(document).ready(function() {
var element = $("#ship-to-different-address-checkbox")
if (typeof element !== 'undefined' && element.is(":checkbox") && element.checked) {
element.checked.checked = false
// anything else
element.checked.trigger("change");
}
});
看起來像是在你的HTML發生了變化,這是造成$(「#船到不同的地址,勾選」)得到( 0)未定義 –
嘗試恢復到以前的版本或在腳本中進行以下更改 - if($(「#ship-to-differen (0)&& $(「#ship-to-different-address-checkbox」)。get(0).checked){$(「#ship-to- different-address- (「。shipping_address」)。addClass(「dhl- hide」); $(「#ship-to-different-address-checkbox」)。觸發器(0).checked = false; $(「。shipping_address」 「change」);} – HarryJs