如何使用jQuery访问下拉选项?

时间:2014-05-19 19:43:13

标签: javascript jquery html

我可以选择“外部”选项,但我无法再选择“内部”选项!我该怎么办? 当我第一次正确选择“外部”时,但当我选择“内部”时,其值将变为“外部”。

<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

2 个答案:

答案 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:

http://jsbin.com/bakoweke/1/edit