在jQuery中使用Javascript字符串作为选择器?

时间:2012-04-02 09:18:56

标签: javascript jquery string variables html

我有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() {
      ....
     }
    }

5 个答案:

答案 0 :(得分:1)

不,就像这样

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

根据您的jquery

版本,还有其他方法

答案 1 :(得分: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);
    }
});

答案 2 :(得分:0)

关于这一点,你的vst必须是一个允许你点击它的对象,并为对象分配一个类或id以触发该函数并运行for ... loop

如果我错了,请纠正我,因为这是我从你的问题中得到的。

答案 3 :(得分:0)

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

您可以将任何字符串用作jQuery的元素选择器参数。

阅读文档以获取更多信息。

http://api.jquery.com/click/

http://api.jquery.com/

答案 4 :(得分:0)

您可以按照您想要的方式将变量中的String传递给$()

例如,你可以这样做:

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()

的文档