2012-06-06 102 views
1

我知道这应该是简单的,但我遇到了多个问题。首先,我不知道如何获得班级的所有元素并改变他们的显示。我发现.each方法与此示例代码:jQuery - 迭代遍历所有元素并改变其风格

$('.classname').each(function(index) { 
     alert(index); 
}); 

我需要什么警报,而不是改变从“无”来阻止'元素的显示属性?

第二个问题是,类名是从隐藏字段中收集的。我们来命名这个变量service。当我尝试用'。'+服务替换'.classname'时,我收到一个错误,说'语法错误,无法识别的表达式:。'。

所以实际的代码会是这样的:

var service=$('#service').val(); 
$('.'+service).each(function(index) { 
     alert(index); 
}); 

我敢肯定,这不能很复杂,但我无法弄清楚。

任何替代解决方案当然是受欢迎的。

回答

4

退房.show

var service=$('#service').val(); 
$('.'+service).show(); // roughly equivalent to .css('display', 'block'); 

然而,作为show的文件指出,该方法返回匹配的元素display属性之前的状态。到display样式属性明确更改为block,使用.css

$('.' + service).css("display", "block"); 
+0

,对于显示元素的作品,但我仍然得到语法错误。有关于此的任何想法? – jovan

+0

@robert:你确定问题出在这个代码上吗?它在语法上是正确的 –

+1

也许错误在于你从$('#service')。val()'得到的任何值。你可以举一个'#service'里面的值的例子吗?对于上面的代码的工作,它应该只是一个单一的,合法的类名称。 – spinningarrow

0

尝试淡入()和淡出()

var service=$("#service").val(); 
$("."+service).fadeIn();