我有以下JS代码:
<script type="text/javascript">
var a = document.getElementsByClassName("sub_category_image");
for( i=0; i < a.length ; i++){
var b = a[i];
b.style.width = "100px";
b.style.height = "100px";
}
</script>
<script type="text/javascript">
var x = document.getElementsByClassName("sub_category_image").alt;
var y = document.getElementsByClassName("sub_category_image");
if (x = "Cool Beans") {
y.style.width = "200px";
y.style.height = "200px";
}
</script>
第一个脚本,更改了所有可用图像的图像大小,但它使其他图像看起来很丑陋&#34;。
第二个脚本是我收到Cannot: set property 'width' of undefined.
错误的地方。我告诉JS寻找包含&#34; Cool Beans&#34;的第一个alt标签。如果发现改变了样式的宽度和高度。怎么了?我相信它必须对我var y
的声明做一些事情,但我没有解决它的线索。
答案 0 :(得分:2)
函数document.getElementsByClassName()
返回一个数组(您可以通过复数名称来表示:getElement s 通过 Something )。
因此,您必须设置x
和y
的索引才能对数组的一个元素进行操作:
<script type="text/javascript">
var x = document.getElementsByClassName("sub_category_image");
for (var i=0; i<x.length; i++) {
if (x[i].alt === "Cool Beans") {
x[i].style.width = "200px";
x[i].style.height = "200px";
}
}
</script>
答案 1 :(得分:1)
您的代码无法按预期方式运行。
您必须迭代您的元素并找到合适的元素。
var a = document.getElementsByClassName("sub_category_image");
for (var i=0; i < a.length; i++) {
var b = a[i];
if (b.alt == "Cool Beans") {
b.style.width = "100px";
b.style.height = "100px";
}
}