Javascript 我试图从一群<;a>;标签:解释I';我做错了
从Javascript 我试图从一群<;a>;标签:解释I';我做错了,javascript,jquery,algorithm,Javascript,Jquery,Algorithm,从t车身元素 <tbody id="results"> <tr> <td><input type="checkbox"><a href="/../../Assets/Microsoft-Azure-roman_column.png">/../../Assets/Microsoft-Azure-roman_column.png</a></td> <td>Microsoft&
t车身元素
<tbody id="results">
<tr>
<td><input type="checkbox"><a href="/../../Assets/Microsoft-Azure-roman_column.png">/../../Assets/Microsoft-Azure-roman_column.png</a></td>
<td>Microsoft</td>
<td>Azure</td>
<td>roman_column.png</td>
</tr>
<tr>
<td><input type="checkbox"><a href="/../../Assets/Microsoft-Azure-runphp.cmd">/../../Assets/Microsoft-Azure-runphp.cmd</a></td>
<td>Microsoft</td>
<td>Azure</td>
<td>runphp.cmd</td>
</tr>
<tr>
<td><input type="checkbox"><a href="/../../Assets/Microsoft-Azure-runphp.cmd">/../../Assets/Microsoft-Azure-runphp.cmd</a></td>
<td>Microsoft</td>
<td>Azure</td>
<td>runphp.cmd</td>
</tr>
<tr>
<td><input type="checkbox"><a href="/../../Assets/Microsoft-Azure-Picture1.png">/../../Assets/Microsoft-Azure-Picture1.png</a></td>
<td>Microsoft</td>
<td>Azure</td>
<td>Picture1.png</td>
</tr>
<tr>
<td><input type="checkbox"><a href="/../../Assets/Microsoft-Azure-vertical-align-scrnsht.png">/../../Assets/Microsoft-Azure-vertical-align-scrnsht.png</a></td>
<td>Microsoft</td>
<td>Azure</td>
<td>vertical-align-scrnsht.png</td>
</tr>
<tr>
<td><input type="checkbox"><a href="/../../Assets/Microsoft-Azure-vertical-align-scrnsht.png">/../../Assets/Microsoft-Azure-vertical-align-scrnsht.png</a></td>
<td>Microsoft</td>
<td>Azure</td>
<td>vertical-align-scrnsht.png</td>
</tr>
</tbody>
但这项测试是记录
0
1
.
.
.
171
172
到控制台而不是预期的
/../../Assets/Microsoft-Azure-roman_column.png
/../../Assets/Microsoft-Azure-runphp.cmd
/../../Assets/Microsoft-Azure-runphp.cmd
/../../Assets/Microsoft-Azure-Picture1.png
/../../Assets/Microsoft-Azure-vertical-align-scrnsht.png
/../../Assets/Microsoft-Azure-vertical-align-scrnsht.png
这是为什么?我如何修复它?首先,您的选择器没有生成任何元素,所以请更改为
$('#results [href]')
其次,使用.each
而不是for循环
$('#results [href]').each(function(){
links.push($(this).attr('href'));
});
最后,改变
for (var thisLink in links) console.log(thisLink);
到
当您在类似javascript的javascript中迭代foreach循环时
for(var key in collection)
key,在本例中是实际的键或索引,因为您有一个数组
看到它工作了吗?您可以使用jQuery。每个都是这样的:
$('tr').each(function() {
var href = $(this).find('a').attr('href');
links.push(href);
console.log(href);
});
首先,你的HTML是无效的。您有一个未关闭的输入
标记
接下来,您的t正文
需要用表
标签包装
然后,如果要查找hrefs
数组,则应使用jQquery.map函数
以下是一个工作示例:
@Cantgetlay,是的case@CantGetLaid,请参阅我的更正和更新答案/fiddle您应该对循环的锚点执行相同的操作:resultRows[thissanch].attr('href');而不是$(this.attr('href');这不是一个好的解决方案,它假设页面上没有其他链接。
for(var key in collection)
$('tr').each(function() {
var href = $(this).find('a').attr('href');
links.push(href);
console.log(href);
});