2016-01-28 32 views
0

我试图从网站下载图像,要求您检查要下载的图像的输入框。因为我想下载所有这些我有这个js脚本来检查所有的输入框..JS:检查输入框在某个TD

var allInputs = document.getElementsByTagName("input"); 
for (var i = 0, max = allInputs.length; i < max; i++){ 
    if (allInputs[i].type === 'checkbox') 
     allInputs[i].checked = true; 
} 

但现在的问题是,这个网站有两种类型的图像,低分辨率和高分辨率和也有每个图像的每个选项的单独输入框。

当然,我只想要高分辨率。我发现高分辨率和低分辨率的图像输入框不可否认地嵌入在<tr>标签中。高分辨率图像输入框包裹在<tr>标签内的<td align="left">

如何让JS只查看输入框的<td align="left">标签并检查它们?

+1

如何使用Element.hasAttribute()? https://developer.mozilla.org/en-US/docs/Web/API/Element/hasAttribute – CreMedian

回答

1
var allInputs = document.getElementsByTagName("input"); 
for (var i = 0, max = allInputs.length; i < max; i++){ 
    if (allInputs[i].type === 'checkbox' && allInputs[i].parentNode.nodeName === 'TD' && allInputs[i].parentNode.getAttribute("align") === 'left') 
     allInputs[i].checked = true; 
} 
+0

这实际上没有工作,但那可能是我的错。我发现高分辨率输入框有一个名称属性:所以我调整了一下你的代码,并让它工作。不管怎么说,多谢拉! – NuWin

1

这可能会实现:

var inputs = document.body.querySelectorAll('input[type="checkbox"]'); 
var i = inputs.length; 
while (i--) { 
    var input = inputs[i]; 
    var parentAlign = input.parentNode.getAttribute('align'); 
    if (parentAlign === 'left') { 
    input.checked = true; 
    } 
} 

http://jsbin.com/pukixiniga/edit?html,js,output