代码之家  ›  专栏  ›  技术社区  ›  Nick Rivers

jQuery:包含Selector if else语句

  •  1
  • Nick Rivers  · 技术社区  · 11 年前

    我有一个结果页面,向用户展示他们是如何在网络表单上得分的。我正试图根据他们的回答显示不同的消息。

    我已经设置了一个基本警报来显示用户所选择的内容。

    var q1 = $('#webform-component-fieldset-1--question-1').text();
    alert(q1);
    
    if ($('#webform-component-fieldset-1--question-1:contains("A. Yes")')) {
        $('.results-wrapper').hide();
        $('.results').append('<div class="popup">User Selected A. Yes, for the first answer.</div>');
    }
    else if ($('#webform-component-fieldset-1--question-1:contains("B. No")')) {
        $('.results-wrapper').hide();
        $('.results').append('<div class="popup">User Selected B. No, for the first answer.</div>');
    }
    else if ($('#webform-component-fieldset-1--question-1:contains("C. I do not know")')) {
       $('.results-wrapper').hide();
       $('.results').append('<div class="popup">User Selected C. I do not know, for the first answer.</div>');  
    }
    else {
       alert('something went wrong');
    }
    

    http://jsfiddle.net/Hr6Lj/10/

    2 回复  |  直到 11 年前
        1
  •  1
  •   Jason Sperske    11 年前

    这就是我要做的(使用jQuery的 data() 功能)( demo )

    <div class="results">
        <div class="results-wrapper">
            <div class="form-item webform-component webform-component-display" id="webform-component-fieldset-1--question-1"
            data-answer="C">C. I do not know</div>
        </div>
    </div>
    
    <script>
      var updateAnswer = function (question) {
        var answer = question.data('answer');
        if (answer === 'A') {
          $('.results-wrapper').hide();
          $('.results').append('<div class="popup">User Selected A. Yes, for the first answer.</div>');
        } else if (answer === 'B') {
          $('.results-wrapper').hide();
          $('.results').append('<div class="popup">User Selected B. No, for the first answer.</div>');
        } else if (answer === 'C') {
          $('.results-wrapper').hide();
          $('.results').append('<div class="popup">User Selected C. I do not know, for the first answer.</div>');
        } else {
          alert('something went wrong');
        }
      }
      updateAnswer($('#webform-component-fieldset-1--question-1'));
    </script>
    
        2
  •  0
  •   Kevin B    11 年前

    以下内容将始终为真,因为对象始终为真。

    if ($('#webform-component-fieldset-1--question-1:contains("A. Yes")'))
    

    您想要知道的是是否选择了任何元素。

    if ($('#webform-component-fieldset-1--question-1:contains("A. Yes")').length)