基本上我想顯示一個特定的div取決於哪些div已經可見。爲了便於理解:div 1,2表示'ticks',div 4,5表示'crosses',div 3表示'正確答案'。因此,如果div 1和div 2可見,我想隱藏所有其他div,包括1,2但顯示div 3.同樣,如果div 2,1可見,則所有其他div應該隱藏,包括1,2但div 3應該可見。
所以,我意識到,我基本上檢查的div [1,2]的排列組合顯示DIV 3.這是以下行爲,其工作之前:用更好的方式編寫代碼?使用排列顯示/隱藏div?
function checkAnswer(){
if($("#div1").is(":visible")) {
if($("#div2").is(":visible")){
$("#div1, #div2, #div4, #div5").hide();
$("#div3").show();
}
}
if($("#div2").is(":visible")){
if($("#div1").is(":visible")){
$("#div1, #div2, #div4, #div5").hide();
$("#div3").show();
}
}
if($("#div3").is(":visible")){
$("#div1, #div2, #div4, #div5").hide();
}
}
但是,如果我遇到的情況,我必須檢查一下 - 比如說4個div,繼續這樣寫就成了一項艱鉅的任務。例如:
function checkAnswer2(){
if($("#div6").is(":visible")) {
if($("#div7").is(":visible")){
if($("#div9").is(":visible")){
if($("#div10").is(":visible")){
$("#div6, #div7, #div9, #div10, #div11").hide();
$("#div8").show();
}
}
}
}
if($("#div6").is(":visible")) {
if($("#div7").is(":visible")){
if($("#div10").is(":visible")){
if($("#div9").is(":visible")){
$("#div6, #div7, #div9, #div10, #div11").hide();
$("#div8").show();
}
}
}
}
//going uptil....
if($("#div8").is(":visible")){
$("#div6, #div7, #div9, #div10, #div11").hide();
}
}
很顯然,我還沒有提到的所有24個排列這裏的div [6,7,9,10]在JavaScript
排列組合可以計算如下解釋:Permutations in JavaScript?
是否可以合併在這種情況下也使用JavaScript/jQuery?
感謝您提前給出的所有答案。任何幫助將非常感激。
有你檢查的div一個又一個,而不是與&&具體的原因是什麼? - >例如:if($(「#div8」)。is(「:visible」)&& $(「#div9」)。is(「:visible」)){...}; – whatTheFox
你需要排列嗎?我看不出你測試div的可見性的順序應該如何影響結果。 –
爲什麼你需要檢查這個檢查的所有排列1然後2與檢查2然後是1是一樣的,所以你只需要1個'if'語句就可以爲你的例子 – Rhumborl