嗨我填充选择>使用我的json使用下面的代码的选项。我怀疑的是,只有当值为“IN”时我才想添加自定义属性。任何人都可以帮助实现这个目标
$.each( data, function( i, val ) {
items.push( "<option value='" + val.countryCode + "'>" + val.countryName + "</option>" );
});
答案 0 :(得分:0)
$.each( data, function( i, val ) {
if(val.countryCode !='IN') {
items.push( "<option value='" + val.countryCode + "'>" + val.countryName + "</option>" );
}
else {
items.push( "<option data-id=1 value='" + val.countryCode + "'>" + val.countryName + "</option>" );
}
});
答案 1 :(得分:0)
尝试这样的事情
$.each( data, function( i, val ) {
items.push( "<option value='" + val.countryCode +( val.countryCode == "IN" ? "data-attr = 'value'" : "" ;) "'>" + val.countryName + "</option>" );
});
答案 2 :(得分:0)
目前只有if
条件才可能。你可以通过打破第一个找到的结果来提高速度,但是你需要使用for循环:
for(var i=0;i<countryArr.length;i++) {
if(countryArr[i].countryCode === "IN") {
items.push( "<option value='" + countryArr[i].countryCode + "'>" + countryArr[i].countryName + "</option>" );
break;
}
});
如果您想使用forEach
,请参阅this post.。但是一些表达可能更容易:
countryArr.some(function(data) {
var check=countryArr[i].countryCode ==="IN";
if(check) {
items.push("<option value='" + data.countryCode + "'>" + data.countryName + "</option>");
}
return check; //some stops, if it returns true
});
ECMA6将引入find
方法,以便您可以快捷方式:
items.push(countryArr.find(function(data) {
return data.countryCode === "IN";
});
答案 3 :(得分:-1)
如果我理解你的问题:
$.each( data, function( i, val ) {
items.push( "<option "+ (val.countryCode === "IN" && "data-id=1" || "") + " value='" + val.countryCode + "'>" + val.countryName + "</option>" );
});`