Reputation: 378
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();
}
Question: The code above is show that when the ID return by jquery, then it will show a list of data, so what I want is when the ID return, if the in front of ID don't have s2id_ it will go else statement. But the code return an error which is (Uncaught TypeError: Cannot read property 'indexOf' of undefined)
Upvotes: 3
Views: 31212
Reputation: 42304
You need to check whether id
itself is set, and there are two ways of going about this.
Either chain the if (id.indexOf('s2id_') > 0)
condition inside an outer if
condition that checks for id
:
if (id) {
if (id.indexOf('s2id_') > 0) {
value = $('.getval_'+product_id+''+index+'').select2('val');
}else{
value = $('.getval_'+product_id+''+index+'').val();
}
}
Or check for both conditions with an and statement:
if (id && id.indexOf('s2id_') > 0) {
value = $('.getval_'+product_id+''+index+'').select2('val');
}else{
value = $('.getval_'+product_id+''+index+'').val();
}
Hope this helps! :)
Upvotes: 4