我正在尝试检查所有输入框,如果旁边有一个图像标记,其中包含src
中的某个图像位置。
var productThumb = document.getElementsByTagName("img").src;
var inputs = document.getElementsByTagName("input");
for (var i = 0, max = inputs.length; i < max; i++) {
imgSrc = productThumb[i];
if (inputs[i].type === 'checkbox' && imgSrc.indexOf("/img/folder/1/") === 0 )
inputs[i].checked = true;
}
当我运行此代码时,我在标题中收到错误。怎么了?我是javascript的新手,所以我不知道我做错了什么,但我认为它必须是var = productThumb
和imgSrc = productThumb[i]
。声明变量的正确方法是什么?
答案 0 :(得分:1)
if ( bgwidth < 0 ) { bgwidth = 0; }
else if ( bgwidth > 100 ) { bgwidth = 100; }
返回类似数组的结构(HTMLCollection
)。因此,getElementsByTagName
未定义,因为productThumb
中没有src
属性。
只需从示例中的第1行删除HTMLCollection
,然后在第4行的末尾添加.src
,您就应该好了。
答案 1 :(得分:1)
您的代码应该是这样的:
var productThumb = document.getElementsByTagName("img");
var inputs = document.getElementsByTagName("input");
for (var i = 0, max = inputs.length; i < max; i++) {
imgSrc = productThumb[i].src;
if (inputs[i].type === 'checkbox' && imgSrc.indexOf("/img/folder/1/") === 0 )
inputs[i].checked = true;
}
这是因为,在第1行中,getElementsByTagName
返回一个img元素数组。因此,从一系列元素中获取src是没有意义的。
答案 2 :(得分:0)
我认为正确的解决方案是在.src前面简单添加[0],这将选择集合中要引用的img。
示例。
var productThumb = document.getElementsByTagName("img")[0].src;
答案 3 :(得分:0)
或者,jQuery提供了一个简单的解决方案。
此
var productThumb = document.getElementsByTagName("img").src;
var输入= document.getElementsByTagName(“输入”);
会成为这个
$productThumb = $('#PARENTid').find('img')[0].src;
$inputs = $('#PARENTid').find('input')[0].src;
如果要使用多个库(它们可能是),现在可以提供额外的兼容性
jQuery(function($){
$productThumb = $('#PARENTid').find('img')[0].src;
$inputs = $('#PARENTid').find('input')[0].src;
});