2014-12-02 26 views
0

我在1動作中分組jQuery選擇器有一個簡單的問題。1動作分組選擇器

比如我有這樣的變量列表:

var searchresults  = '#search-results'; 
var event_two   = '#event-two'; 
var competition_three = '#competition-three'; 
var apparatus_four  = '#apparatus-four'; 

觸發更改事件後,我有這樣的事情:

$("#event_two, #competition_three, #apparatus_four").empty(); 

問題沒有一個是我不能讓它工作。我已經以很多不同的方式嘗試過了。

這是我的代碼的第一部分的代碼片斷如何:

$(document).on('change', '#discipline-one', function() { 
    var discipline = $(this).val(); 

    // event_two.empty(); 
    // competition_three.empty(); 
    // apparatus_four.empty(); 

    $("#event_two, #competition_three, #apparatus_four").empty(); 

    $("#event_two").append("<option selected='true' disabled='disabled'>Please select an event</option>"); 
    $("#competition_three").append("<option selected='true' disabled='disabled'>Please choose from above</option>"); 
    $("#apparatus_four").append("<option selected='true' disabled='disabled'>Please choose from above</option>"); 

    $("#event_two").attr("disabled",true); 
    $("#competition_three").attr("disabled",true); 
    $("#apparatus_four").attr("disabled",true); 

    $.get("getEvents.php?discipline=" + discipline, function(data) { 
     var vals = jQuery.parseJSON(data); 

     if(data) { 
     $("#event_two").attr("disabled",false); 
     $("#event_two").attr("autofocus",true); 
     } 

     if($.isArray(vals['Event'])) { 
     $.each(vals['Event'], function(k,v){ 
      $("#event_two").append("<option value='"+v['id']+"'>" + v['name'] + "</option>"); 
     }); 
     } else { 
     $("#event_two").append("<option value='"+vals['Event']['id']+"'>" + vals['Event']['name'] + "</option>"); 
     } 

    }); 
    }); 

預先感謝您。

+1

是這些div或輸入 – Hackerman 2014-12-02 15:08:00

+0

這是 - 'UL的id' – ummahusla 2014-12-02 15:10:18

+0

*歡迎StackOverflow的*請參閱[56,「問題包括‘標籤’,在他們的!標題?「](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中的共識是」不,他們不應該「。 – 2014-12-02 15:27:35

回答

0

我認爲你有一個錯字:

在這裏,您說:

$("#event_two, #competition_three, #apparatus_four").empty(); 

你定義ID與下劃線。

在這裏,您說:

var searchresults  = '#search-results'; 
var event_two   = '#event-two'; 
var competition_three = '#competition-three'; 
var apparatus_four  = '#apparatus-four'; 

你自己的ID的不包含下劃線。

我想你的意思是:(UPDATE)

$(event_two + ', ' + competition_three + ', ' + apparatus_four).empty(); 
+0

它沒有爲我工作,我已經嘗試過。這不是我的代碼的好方法。我將無法在函數中使用它們。所以這就是爲什麼我要重構我的代碼。 – ummahusla 2014-12-02 15:09:36

+0

讓我試試這個。 – ummahusla 2014-12-02 15:14:47

0

像@VDesign說,你定義ID的下劃線,但在你的變量,你必須連字符。所以下面將不起作用:

$("#event_two, #competition_three, #apparatus_four").empty(); 

但是,當你要選擇多個對象,你必須有一個大的字符串用逗號,像這樣:

$(event_two + ',' + competition_three + ',' + apparatus_four).empty(); 

有關詳細信息,請參見http://api.jquery.com/multiple-selector/多個選擇器。

你甚至可以做這樣的事情:

$([ event_two, competition_three, apparatus_four ].join(',')).empty(); 
+1

你錯過了')'那裏 – 2014-12-02 15:12:48

+0

完全錯過了;) – jValdron 2014-12-02 15:13:04

+1

仍然不對 – 2014-12-02 15:13:15