2012-04-02 87 views
0

我在Javascript:在jQuery中使用JavaScript字符串作爲選擇器?

for (i=0; i < parseInt(ids); i++){ 
    var vst = '#'+String(img_arr[i]); 
    var dst = '#'+String(div_arr[i]); 
    } 

我怎麼能繼續在jQuery的一樣:

$(function() { 
    $(vst).'click': function() { 
     .... 
    } 
    } 
+0

$(VST)。點擊(函數(){}); – 2012-04-02 09:22:36

+1

'$(vst)。'click':function(){'是完全錯誤的語法。我建議先讓自己熟悉JavaScript語法:https://developer.mozilla.org/en/JavaScript/Guide並閱讀jQuery教程可能也會有所幫助:http://docs.jquery.com/Tutorials – 2012-04-02 09:39:31

回答

1

NO,這樣反而

$(function() { 
    $(vst).click(function() { 
     .... 
    }); 
}); 

有其他方式取決於你的版本jquery

+0

謝謝很多!實際上你會等5分鐘來接受答案,儘管已經是早上5點了) – Stpn 2012-04-02 09:28:32

0

你的語法是錯誤的,但除此之外,你將有沒有問題。要指定點擊:

$(function() { 
     for (i=0; i < parseInt(ids); i++){ 
      var vst = '#'+String(img_arr[i]); 
      var dst = '#'+String(div_arr[i]); 

      $(vst).click(function (evt) { 
       ... 
      }); 
     } 
}) 

注意,由於vst在循環正在發生變化,您的活動代碼也應該放在循環。

編輯:假設你想同樣的事情發生的每一個形象,每一個DIV,你也可以做這樣的事情:

$(function() { 
    function imgEventSpec($evt) { 
     // image clicked. 
    } 

    function divEventSpec($evt) { 
     // div clicked. 
    } 

    for (var idx = 0; idx < img_arr.length && idx < div_arr.length; idx ++) { 
     $("#" + img_arr[idx]).click(imgEventSpec); 
     $("#" + div_arr[idx]).click(divEventSpec); 
    } 
}); 
0

關於這個,你的vst必須是一個對象,它允許你點擊它,你assi gn一個類或id的對象,以觸發該功能,並運行for ...循環

糾正我,如果我錯了,因爲這是我從你的問題得到的。

0

您可以在一個變量傳遞一個字符串給你想要做的只是$()的方式。

例如,你可以這樣做:

var id = 'banner'; 
var sel = '#'+id; 
$(sel).doSomething(); //will select '#banner' 

錯誤之處在於結合單擊處理,當你正在使用的語法。這通常會工作,如:

$(sel).click(function(){ 
//here goes what you want to do in the handler 
}); 

請參閱該文檔爲.click()

+0

或者你可能會變得更簡單 - '$(「#」+ id).click(function(){})' – RemarkLima 2012-04-02 09:39:43

+0

@RemarkLima I'm只是試圖「傳遞信息」,雖然不會贏得任何表演獎......當然是:) – m90 2012-04-02 09:40:35

+1

因此,upvote!只是試圖保持好的內容,對於那些需要它的更多細節 – RemarkLima 2012-04-02 09:41:59

相關問題