普通JS:使80%宽度元素100%IF包含一个图像
Plain JS: make 80% width element 100% IF contains an image
在我的wordpress帖子中,我希望文本段落的宽度为内容区域的80%,但图像的宽度为100%。然而,图像被包裹在<p>
标签中,所以我想写一个小脚本,找到帖子中的所有p标签,如果有包含img元素的话,给p标签一个在CSS中指定100%宽度的类。
我找到了一种使用getElementByID:的方法
var kids = document.getElementById('content').getElementsByTagName('p');
var looper = function(t){
for(i=0; i<kids.length; i++){
if(t[i].firstChild.tagName === "IMG"){
t[i].setAttribute("class", "postimg");
}
}
};
looper(kids);
这是jsbin:http://jsbin.com/meculi/
我不知道当内容区域有一个类但没有id时,如何最好地进行getElementsByTagName
不能是getElementsByClassName.
的方法
getElementsByClassName
返回一个类似数组的元素列表,因此不能对其结果调用元素方法。您可以循环查看结果并为每个结果运行循环,但我建议使用一个更简单的解决方案:querySelectorAll
。
var kids = document.querySelectorAll('.content p');
这将使kids
成为循环代码应该使用的NodeList。您甚至可以更进一步,让querySelectorAll
来查找包含图像的段落:
var paragraph_images = document.querySelectorAll('.content p > img');
for (var i = 0; i < paragraph_images.length; i++) {
paragraph_images[i].parentNode.className += ' postimg';
}
相关文章:
- 宽度为100%的CSS元素位于视口之外
- KnockoutJS:为虚拟元素使用嵌套的条件if语句
- 在 ng-if 编译后访问指令中的 DOM 元素
- 普通JS:使80%宽度元素100%IF包含一个图像
- AngularJS ng-if指令在移除元素之前,即使条件为false,也会短暂呈现
- 执行 If 语句,仅当元素存在时
- 我需要在javascript if语句中使用jquery来动画元素的颜色
- if数组元素在for循环内部有条件
- 从指令中向元素添加ng-if属性
- javascript(prototype)if元素并没有属性
- 具有 100% 宽度元素的 Jquery 水平平移
- 随机化并在页面加载时显示给定数量的 if 元素
- jQuery if元素hasClass的var执行此操作
- font- family:宋体;If元素包含非拉丁字符
- 为什么我的100%宽元素变成30000px+宽时使用css3- mediaqueres .js
- Fotorama -不同的标题基于if元素的属性
- 为什么在包含100个元素的数组中搜索中间元素要比在包含10个元素的数组中搜索快?
- Javascript touchend if元素在另一个元素上
- 存储和检索100个元素的数组
- 如何为每个if元素添加或移除类