0

ドロップダウンがあります。特定のオプションを選択すると、特定のクラスを持つリストからアイテムが削除されます。ただし、私の削除コマンド:$('#coll-grouped-list li')。hasClass('timeGroup')。remove(); 動作しないようです。何か案は?

HTML

<select id="tGroup" name="tGroup" class="standard_select" style="width:200px;">
                  <option value="">Please Select</option>
                  <option value="hourGroup">Group by Hour</option>
                  <option value="dayGroup">Group by Day</option>
                  <option value="weekGroup">Group by Week</option>
                  <option value="monthGroup">Group by Month</option>
                  <option value="yearGroup">Group by Year</option>
                </select>

<ul id="coll-selected-list" class="droptrue sort-drop">
              </ul>
<ul id="coll-grouped-list" class="droptrue agg-drop">
              </ul>

JS

$('#tGroup').bind('change', function (e) { 
        if( $('#tGroup').val() == 'hourGroup') {
          $('#coll-grouped-list li').hasClass('timeGroup').remove();
          $("#coll-grouped-list").append('<li class="timeGroup">Hour</li>');
        }
        if( $('#tGroup').val() == 'dayGroup') {
          $('#coll-grouped-list li').hasClass('timeGroup').remove();
          $("#coll-grouped-list").append('<li class="timeGroup">Day</li>');
        }         
      });
4

3 に答える 3

1

hasClassbooleanを返すので、直感的には連鎖できません。したがってremove()、booleanクラスにはメソッドがないため、例で行っていることを行うことは無効です(true.remove()

試す

$('#coll-grouped-list li.timeGroup').remove(); 

ドキュメントから:

クラスが要素に割り当てられている場合、.hasClass()メソッドはtrueを返します

于 2012-08-16T08:29:59.613 に答える
0

jQueryオブジェクトではなくブール値を返すため、機能しません。そのため、後で.hasClass()別のjQuery関数()をチェーンすることはできません。.remove()

代わりにこれを試してください:

$('#coll-grouped-list li.timeGroup').remove();
于 2012-08-16T08:30:46.260 に答える
0

これを試して:

 $('#tGroup').bind('change', function (e) { 
     var $group = $('#coll-grouped-list');
     if( this.value == 'hourGroup') {
       $group.find('li.timeGroup').remove();
       $group.append('<li class="timeGroup">Hour</li>');
     }
     if( this.value == 'dayGroup') {
       $group.find('li.timeGroup').remove();
       $group.append('<li class="timeGroup">Day</li>');
     }         
  });
于 2012-08-16T08:34:06.120 に答える