這是我在Stack Overflow上的第一個問題。我通常會從搜索中找到所有我的答案,但在編寫下面的代碼後,我完全沒有動力。以下代碼的簡寫或效率
有沒有更有效的方法或者簡寫下面的代碼?
目前它正是我想要的。當你點擊一個單選按鈕時,一個div被加載到該單選按鈕旁邊。如果您切換單選按鈕,則會刪除div並在該單選按鈕旁邊創建一個新的。
我對寫自己的JavaScript/jQuery相當陌生。我知道CASE,但我不完全確定這是否是一個好的情況。
任何建議將不勝感激。
jQuery(document).ready(function($) {
var checkedItem = true;
$('form input').click(function(){
if (checkedItem == true){
$(this).siblings('div.next').remove('.checked');
$(this).after('<div class="next">NEXT</div>');
$(this).siblings('div.next').addClass('checked');
checkedItem = false;
}
else {
$(this).siblings('div.next').remove('.checked');
$(this).after('<div class="next">NEXT</div>');
$(this).siblings('div.next').addClass('checked');
checkedItem = true;
}
});
});
<form id="input-form">
<input class="PAD" type="radio" name="Seasons" value="Spring-Fall" /> Spring-Fall<br />
<input class="PAD" type="radio" name="Seasons" value="Winter" /> Winter
</form>
在jquery選擇,你不必做的事情,如「div.next」。如果它接下來有類,只需使用「.next」 – SpYk3HH
您是否在尋找更高效的編寫代碼,更易於閱讀,或者在運行時更高效?另外,'if'內的前三行與'else'分支內的前三行完全相同 - 是一個錯誤嗎? – nnnnnn
多次調用'$(this)'效率非常低,請創建一個單引用並使用該引用。 'var input = $(this);'然後在所有使用'$(this)'的地方使用'input'。 – RobG