2 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
看得我頭皮發(fā)麻,你想要實(shí)現(xiàn)一個(gè)什么功能能一起貼出來(lái)嗎?就我能了解到的信息,你至少可以先用一個(gè)策略模式來(lái)改變這 滿(mǎn)屏 ifelse的困境,比如說(shuō):
if(NewOSelects.eq(0).val()==1){
NewOSelects.eq(1).find("option:eq(1)").attr("disabled","disabled");
NewOSelects.eq(2).find("option:eq(1)").attr("disabled","disabled");
NewOSelects.eq(0).find("option:eq(2)").attr("disabled","disabled");
NewOSelects.eq(0).find("option:eq(3)").attr("disabled","disabled");
}else if(NewOSelects.eq(0).val()==2){
NewOSelects.eq(1).find("option:eq(2)").attr("disabled","disabled");
NewOSelects.eq(2).find("option:eq(2)").attr("disabled","disabled");
NewOSelects.eq(0).find("option:eq(1)").attr("disabled","disabled");
NewOSelects.eq(0).find("option:eq(3)").attr("disabled","disabled");
}else if(NewOSelects.eq(0).val()==3){
NewOSelects.eq(1).find("option:eq(3)").attr("disabled","disabled");
NewOSelects.eq(2).find("option:eq(3)").attr("disabled","disabled");
NewOSelects.eq(0).find("option:eq(1)").attr("disabled","disabled");
NewOSelects.eq(0).find("option:eq(2)").attr("disabled","disabled");
};
var handle = {
"type_1" : function(NewOSelects){
NewOSelects.eq(1).find("option:eq(1)").attr("disabled","disabled");
NewOSelects.eq(2).find("option:eq(1)").attr("disabled","disabled");
NewOSelects.eq(0).find("option:eq(2)").attr("disabled","disabled");
NewOSelects.eq(0).find("option:eq(3)").attr("disabled","disabled");
}
....
}
//調(diào)用
handle["type_"+NewOSelects.eq(0).val()](NewOSelects);
其他的還可以繼續(xù)優(yōu)化,但太多了,寫(xiě)起來(lái)很煩就算了。。。自己想辦法提取出能夠合并的項(xiàng),然后把變化的部分當(dāng)成參數(shù)發(fā)過(guò)去就行了。。

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
我這做了兩個(gè)假設(shè)
一是NewOSelects只有0,1,2
二是option只有1,2,3
不符合的話你再告訴我...
然后縮減實(shí)際上就是求補(bǔ)集
if (NewOSelects.length > 1) {
let value
value = NewOSelects.eq(0).val();
NewOSelects.not(':eq(0)').find(`option:eq(${value})`).attr("disabled", "disabled");
NewOSelects.eq(0).find('option').not(`:eq(${value})`).attr("disabled", "disabled");
value = NewOSelects.eq(1).val();
NewOSelects.not(':eq(1)').find(`option:eq(${value})`).attr("disabled", "disabled");
NewOSelects.eq(1).find('option').not(`:eq(${value})`).attr("disabled", "disabled");
}
添加回答
舉報(bào)