2013-03-20 83 views
1

我有一个结果页面,向用户显示他们在网络表单上的得分情况。我试图根据他们的回答显示不同的消息。jQuery:包含Selector if else语句

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

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/

+0

那么,有什么问题/问题做呢? – j08691 2013-03-20 17:31:46

+0

你为什么用这种方式使用选择器?难道你不能获取'$('#webform-component-fieldset-1-question-1')'然后通过'html()'测试它的内容吗? – 2013-03-20 17:33:11

+0

@JasonSperske为什么要测试元素的字符串内容而不是测试元素是否存在?这似乎是一个更为复杂的方式,当他只需将'.length'添加到他当前的代码中即可。 – 2013-03-20 17:34:03

回答

0

下,因为对象总是正确的永远是正确的。

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

你想要知道是否有任何元素被选中。

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

添加.lenght做到了。谢谢。 – 2013-03-20 18:14:29

1

这是我将如何(使用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> 
+0

使它稍微更一般 – 2013-03-20 17:47:12