このコードスニペットは、結果として10個の質問を表示し、CSSの.hidemeクラスを通してそれぞれの質問の可視性を操作するために使用されます。次に、メトリクスデータをGoogleアナリティクスに送信します。 これは動作しますが、大きすぎます。私はこのコードをより短く(スマートな)書式で書き直そうとしています。助言がありますか?「if」の短いコード
<script>
(function($) {
$(":input").change(function(){
$(this).closest("div").addClass("hideMe");
$(this).closest("div").next("div").removeClass("hideMe");
if($('#q2').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 1 Answered');
}
if($('#q3').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 2 Answered');
}
if($('#q4').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 3 Answered');
}
if($('#q5').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 4 Answered');
}
if($('#q6').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 5 Answered');
}
if($('#q7').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 6 Answered');
}
if($('#q8').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 7 Answered');
}
if($('#q9').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 8 Answered');
}
if($('#q10').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 9 Answered');
}
if($('#results').is(':visible')) {
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Question 10 Answered');
ga('send', 'event', 'EnglishHearingWidget', 'question', 'Results displayed');
document.getElementById('answer1').innerHTML = $("input[name=qo1]:checked").val();
document.getElementById('answer2').innerHTML = $("input[name=qo2]:checked").val();
document.getElementById('answer3').innerHTML = $("input[name=qo3]:checked").val();
document.getElementById('answer4').innerHTML = $("input[name=qo4]:checked").val();
document.getElementById('answer5').innerHTML = $("input[name=qo5]:checked").val();
document.getElementById('answer6').innerHTML = $("input[name=qo6]:checked").val();
document.getElementById('answer7').innerHTML = $("input[name=qo7]:checked").val();
document.getElementById('answer8').innerHTML = $("input[name=qo8]:checked").val();
document.getElementById('answer9').innerHTML = $("input[name=qo9]:checked").val();
document.getElementById('answer10').innerHTML = $("input[name=qo10]:checked").val();
document.getElementById('total1').innerHTML = $('input.yes:checked').length;
document.getElementById('total2').innerHTML = $('input.yes:checked').length;
if($('input.yes:checked').length > 2)
{
$('#first').hide();
$('#second').show();
}
else
{
$('#first').show();
$('#second').hide();**strong text**
}
}
});
})(jQuery);
</script>
あなたが道を想像できますか?そこに任意のパターンを参照してい['for'ループでパターンを繰り返すのか?](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for) –
' {q5: – tadman
素早く返信してくれてありがとうございます。私はパターンを見ていますが、実際には "for loop"でそれを書く方法はわかりません。 。 – Laziz