var id = $('.getval_'+product_id+''+index+'').attr("id");
var value = "";
console.log(id);
//data that return by id
6059
s2id_6061
6122
s2id_8410
if (id.indexOf('s2id_') > 0) {
value = $('.getval_'+product_id+''+index+'').select2('val');
}else{
value = $('.getval_'+product_id+''+index+'').val();
}
问题: 上面的代码显示,当 ID 返回jquery时,它会显示一个数据列表,所以我想要的是当 ID 返回时,如果在前面 ID 没有 s2id _ 它会发出其他声明。但代码返回错误(未捕获TypeError:无法读取属性' indexOf'未定义)
答案 0 :(得分:4)
您需要检查id
本身是否已设置,并且有两种方法可以解决此问题。
将if (id.indexOf('s2id_') > 0)
条件链接到检查if
的外id
条件中:
if (id) {
if (id.indexOf('s2id_') > 0) {
value = $('.getval_'+product_id+''+index+'').select2('val');
}else{
value = $('.getval_'+product_id+''+index+'').val();
}
}
或使用和语句检查两个条件:
if (id && id.indexOf('s2id_') > 0) {
value = $('.getval_'+product_id+''+index+'').select2('val');
}else{
value = $('.getval_'+product_id+''+index+'').val();
}
希望这有帮助! :)