动态添加样式不起作用

时间:2014-03-13 06:40:09

标签: javascript jquery styles

抱歉我的英语。 我想在我的网站中隐藏div。我正在使用此代码

  $('ul .tab li').attr("style", "display: none");

这项工作适用于所有网络浏览器。但是当我通过我的ipad看到这个。存在错误。经过一些谷歌搜索,我发现某些ipad浏览器不支持attr。然后 我只能使用javascript动态设置我的网站样式。当我使用这个代码时,我得到了一个错误

  document.querySelectorAll('ul .tab li').style.display = "none";
  document.querySelectorAll('ul .tab li li').style.display = "block";

错误是

  Uncaught TypeError: Cannot set property 'display' of undefined 

如果有人知道这件事请帮帮我。

5 个答案:

答案 0 :(得分:3)

尝试

$('ul .tab li').css("display", "none");

此外,

lib分配给ul元素的类吗?在这种情况下,正确的方法是

$('ul.tab li').css("display", "none");

删除ul.tab

之间的空格

更新:

querySelectorAll会返回Array。这就是为什么你不能直接使用.style属性的原因。您必须遍历该数组才能将该样式应用于所选元素。

答案 1 :(得分:0)

尝试使用Jquery css()

  $('ul .tab li').css("display", "none");
   AND
  $('ul .tab li').css("display", "block");

答案 2 :(得分:0)

你可以这样做:

var nodes = document.querySelectorAll('ul .tab li');
for (var i = 0; i < nodes.length; i++) {
    nodes[i].style.display = 'block'; //Or none
}

Here is a simple example

答案 3 :(得分:0)

试试这个纯粹的javascript:

var list=document.getElementsByTagName("UL")[0];
var list1=list.getElementsByClassName('tab'); 
list1.getElementsByTagName("LI")[0].style.display = "none";

答案 4 :(得分:0)

你可以使用

$('ul .tab li').hide();