我的代码中有多个if
语句,如下所示:
if ($('#text1').val().length == 0) {
$('#text1').val(text1);
}
if ($('#text2').val().length == 0) {
$('#text2').val(text2);
}
if ($('#text3').val().length == 0) {
$('#text3').val(text3);
}
if ($('#text4').val().length == 0) {
$('#text4').val(text4);
}
if ($('#text5').val().length == 0) {
$('#text5').val(text5);
}
if ($('#text6').val().length == 0) {
$('#text6').val(text6);
}
因此,根据要求,我需要检查文本框中是否有值,然后不要覆盖API响应,否则请编写API响应。有没有办法避免这些if
提高性能?
答案 0 :(得分:1)
如果由于某种原因你不能使用公共类或属性选择器,那么逻辑将是:
$('[id^=text]').val(function(){
return this.value.length ? this.value : data[this.id];
});
var data = {
text1: 1,
text2: 2,
text3: 3
}
$('[id^=text]').val(function(){
return this.value.length ? this.value : data[this.id];
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="text1" value="">
<input id="text2" value="">
<input id="text3" value="ok">
&#13;
答案 1 :(得分:1)
使用each
方法和[attribute^=value]选择器:
$("[id^=text]").each(function(){
if ($(this).val().length == 0) {
$(this).val($(this).attr(id));
}
)
答案 2 :(得分:0)
尝试:
{{1}}
答案 3 :(得分:-1)
你可以尝试使用像:
这样的循环var textN = [text1,text2,text3,text4,text5,text6];
for(var i = 1; i <= textN.length; i++){
var textID = '#text' + i;
if ($(textID).val().length == 0) {
$(textID).val(textN[i - 1]);
}
}
答案 4 :(得分:-1)
var i=0;
while(i<elementcount)
{
if($('#text'+i).val().length == 0)
if($('#text'+i).val(textarray[i]);
i++;
}
但首先要定义元素计数和textarray。希望这个概念有所帮助