2012-04-02 29 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

相关问题