jQuery:如何操纵索引?

时间:2012-06-05 10:32:17

标签: javascript jquery

不应该是一个如此难的问题......我只是很难弄清楚如何对某些jquery元素进行操作,特别是它们的索引。 Teh codez:

$( "#docSlider" ).css("background-image", "url(../../bundles/mypath/images/maquette/img" + $( "#selectable li" ).index( this ) + (".jpg)"));

我想让我加载的图片的名称取决于jQuery selectable的索引。所以我抓住索引并尝试添加1 ...但它无法工作,因为“+”也是一个连接器 我也尝试过parseInt,但总是值得0。

如何简单地将索引转换为整数,然后将其与字符串的其余部分连接起来?

提前谢谢!

编辑:我正在使用已经存在的功能,所以我几乎无法更改参数(好吧,我想我不能......)

我在$(function(){})部分中有这个代码示例:

$( "#selectable" ).selectable({
                selected: function(event, ui) { 
                    $( "#docSlider" ).css("background-image", $( "#selectable li" ).index( this ) "url(../../bundles/mypath/images/maquette/img" +  + (".jpg)"));
                }});

//initalizing
                $( "#docSlider" ).css("background-image",  "url(../../bundles/auraeconference/images/maquette/img" + $( "#selectable li" ).index( this ) + (".jpg)"));

2 个答案:

答案 0 :(得分:0)

$( "#docSlider" ).css("background-image", function(index, url) {
   return "url(../../bundles/mypath/images/maquette/img" + (index + 1) + (".jpg)");
});

.css()也将属性和处理程序作为参数,因此您不必担心该函数,这不会影响您的代码或现有函数。

据你编辑

$ "#selectable" )
          .selectable({
             selected: function(event, ui) { 
               var index = $( "#selectable li" ).index( ui.selected ) + 1;
               $( "#docSlider" )
                   .css("background-image", function(){ 
                         return "url(../../bundles/mypath/images/maquette/img" +  index + (".jpg)")});
                }});

或只是

$( "#docSlider" )
          .css("background-image","url(../../bundles/mypath/images/maquette/img" +  index + (".jpg)")});

答案 1 :(得分:0)

一样使用它
$( "#docSlider" ).css("background-image",function(i){
          return "url(../../bundles/mypath/images/maquette/img"+ (i+1)+".jpg";
}); 

$.css有一个替代语法,如

 .css( propertyName, function(index, value) )

你可以利用它。

<强>更新

this回调中的

selectable,在您的情况下是指#selectable。所以你可以使用

$(this).find('li').index(ui.selected);

$( "#selectable li" ).index( ui.selected )

所以你可以试试这个

selected: function(event, ui) { 
      var index = $( "#selectable li" ).index( ui.selected ) + 1;
     $( "#docSlider" )
          .css("background-image",  "url(../../bundles/mypath/images/maquette/img" + index + ".jpg)");
                }});

Demo