我可以选择“外部”选项,但我无法再选择“内部”选项!我该怎么办? 当我第一次正确选择“外部”时,但当我选择“内部”时,其值将变为“外部”。
<p class="list2">
<label for="list2">choose 1</label>
<select name="list2" id="list2">
<option>Internal</option>
<option>External</option>
</select>
</p>
<p class="list3">
<label for="list3">Internal</label>
<select name="list3" id="list3">
<option>Internal 1</option>
<option>Internal 2</option>
<option>Internal 3</option>
<option>Internal 4</option>
</select>
</p>
<p class="list4" style="display: none;">
<label for="list4">External</label>
<select name="list4" id="list4">
<option selected>External 1</option>
<option>External 2</option>
<option>External 3</option>
</select>
</p>
这是我的剧本:
(function(){
var whichSelected = function(){
$('#list2').change(function() {
$('#list2 option:selected').each(function() {
if($(this).text('Internal')){
$('.list4').css({
display: 'none',
});
$('.list3').css({
display: 'block',
});
}
if($(this).text('External')){
$('.list4').css({
display: 'block',
});
$('.list3').css({
display: 'none',
});
}
});
});
},
init = function(){
whichSelected();
};
$(init);
})();
您可以在此处观看演示:http://jsbin.com/qiwif/2/edit
答案 0 :(得分:2)
$(this).text('Internal')
和$(this).text('External')
将是真实的,因为他们正在设置文本值。
改为使用$(this).text() === 'Internal'
和$(this).text() === 'External'
。
答案 1 :(得分:0)
您正在错误地使用jQuery text()
函数。
在没有任何参数的情况下调用text()
会检索元素的值。
使用参数调用text('Internal')
函数可设置元素的文本值。
您应该更改为使用以下代码行:
if($(this).text() == 'Internal'){
if($(this).text() == 'External'){
这是更新的jsbin: