我想循环遍历id数组并检查值是否存在,并在下面执行填充代码:
function checkBillingFields() {
var inputIDS = [ "#billing_first_name", "#billing_last_name", "#billing_company", "#billing_phone", "#billing_address_1", "#billing_address_2", "#billing_city", "#billing_city"];
var arrayLength = inputIDS.length;
for (var i = 0; i < arrayLength; i++) {
console.log(inputIDS[i]);
if ($("inputIDS[i]").val().length == 0){
$('.woocommerce-billing-fields__field-wrapper').appendTo('.billing-fields');
$(".billing-heading").css({'margin-top': '100px'});
}else{
$(".expand-billing").css({'display': 'none'});
}
}
}
checkBillingFields();
我得到错误无法读取undefined的属性'length'。我使用本地存储来存储输入,并且它经过了很好的测试。
任何想法都很有帮助,因为我一直在研究并尝试解决这个问题,但没有任何效果。
答案 0 :(得分:1)
用
替换你的if语句if ($(inputIDS[i]).val().length == 0)
这将直接使用jQuery与数组中的值,而不是在您的情况下使用字符串文字。
要确保不再出现任何错误,请按照
进行操作//First check if element actually exists in DOM
var tmp = $(inputIDS[i]);
if (tmp.length == 1 && tmp.val().length == 0) {
}
答案 1 :(得分:1)
就像您的console.log()
在if
声明
console.log(inputIDS[i]);
if ($(inputIDS[i]).val().length == 0){
inputIDS[i]
//如果i = 0,则返回#billing_first_name
"inputIDS[i]"
会返回"inputIDS[i]"