Jquery – 将CSS样式应用于指定div中的所有元素?

我有一个情况,我正在为一个wordpress网站设置一个移动主题.
现在我想做的是,在“#content”div中抓取任何元素(p,divs,etcc),并对每个这些子元素应用css“width:100%”.

我想要这样做的原因是,如果某人为div设置固定宽度,则需要覆盖该宽度,并将其恢复为100%,以便在具有较小屏幕的移动设备上查看时不会被截断.

我想知道如何使用Jquery来实现这一点.

我感谢任何帮助.
谢谢

解决方法

有时,jQuery是错误的方式…

你不应该使用jQuery,除非它提供了合法的优势.通常使用标准JavaScript将为您带来巨大的性能优势.根据您的情况,您可以执行以下操作:

var i,tags = document.getElementById("content").getElementsByTagName("*"),total = tags.length;
for ( i = 0; i < total; i++ ) {
  tags[i].style.width = '100%';
}

在线演示:http://jsbin.com/otunam/3/edit

话虽如此,jQuery方法也很简单.

$('#content').find('*').width('100%');

这将运行到每个级别的#content,影响所有元素.

在线演示:http://jsbin.com/otunam/edit

性能差异

使用http://jsperf.com比较这里的性能差异,我们可以看到原始JavaScript的速度超过了jQuery的替代方案.在一次测试中,JavaScript可以在jQuery完成20k的时间内完成300k的操作.

现在测试:http://jsperf.com/resizing-children

但是,为什么选择JavaScript?

最终,jQuery还是Raw JavaScript更好的问题是一个红色的鲱鱼,分散了真正的问题 – 为什么要使用脚本?如果您检测到移动浏览器,请加载包含移动规则的新样式表:

#content * { width:100% }

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...