Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery循环设置css属性_Javascript_Jquery_Css_Variables_Loops - Fatal编程技术网

Javascript 使用jQuery循环设置css属性

Javascript 使用jQuery循环设置css属性,javascript,jquery,css,variables,loops,Javascript,Jquery,Css,Variables,Loops,我试图使用jQuery循环来设置一个变量,该变量在循环的每次传递中都会发生变化。然后,该变量将应用于css属性。我遇到的问题是,每个带有变量的css属性都有相同的值(即循环末尾的值) pageArray=newarray('web1','web2','web3','web4'); **leftTabHeight**=0; 对于(var p=0;p您可以执行以下操作: var variable_position = 0; $('.background_image').each(function()

我试图使用jQuery循环来设置一个变量,该变量在循环的每次传递中都会发生变化。然后,该变量将应用于css属性。我遇到的问题是,每个带有变量的css属性都有相同的值(即循环末尾的值)

pageArray=newarray('web1','web2','web3','web4');
**leftTabHeight**=0;

对于(var p=0;p您可以执行以下操作:

var variable_position = 0;
$('.background_image').each(function(){
  $(this).css('background-position', '0px ' + variable_position + 'px 42px 42px');
  variable_position += 100;
});

这是假设需要它的对象具有类“background\u image”。

好的,我已经解决了这个问题,每次函数循环时,我都会重写所有div。我需要将第三个类作为变量添加到jQuery选择中。因此,这段代码起作用:

pageArray = new Array('snake','web_s','web1','web2','web3','web4');
var leftTabHeight = 0;
for (var p in pageArray){
    leftTabHeight = parseFloat(p *100);
    $('.'+pageArray[p]+'.left.main').addClass('flip_left');
    $('.'+pageArray[p]+'.left.main').css({'width':'482px', 'height':'668px', 'z-index':'11','background':'url("images/snake_tab.png") no-repeat, url("images/book_left_main.png") no-repeat','background-position': '0px '+leftTabHeight+'px, 42px 42px','position':'absolute'});
};

问题是您引用的是所有的
“.left.main”
项。将这些行更改为
$('.+pageArray[p]+'.left.main').css(…)

您能显示一些html代码吗?试试leftTabHeight=parseFloat(p*100);没有骰子所有的ParseFloat都是一样的,我能弄明白,但是stackoverflow还不让我回答我自己的问题。我稍后会发布它。我实际上已经尝试使用$.each(pageArray,function(){并且它产生了与我现在得到的相同的效果
var variable_position = 0;
$('.background_image').each(function(){
  $(this).css('background-position', '0px ' + variable_position + 'px 42px 42px');
  variable_position += 100;
});
pageArray = new Array('snake','web_s','web1','web2','web3','web4');
var leftTabHeight = 0;
for (var p in pageArray){
    leftTabHeight = parseFloat(p *100);
    $('.'+pageArray[p]+'.left.main').addClass('flip_left');
    $('.'+pageArray[p]+'.left.main').css({'width':'482px', 'height':'668px', 'z-index':'11','background':'url("images/snake_tab.png") no-repeat, url("images/book_left_main.png") no-repeat','background-position': '0px '+leftTabHeight+'px, 42px 42px','position':'absolute'});
};