我有桌子,桌子的每个单元格都有特定的网址。我试图使用jquery获取特定单元格上的URL。这里的问题是没有为表,行和列定义类或id。只想使用标签来拉取href属性。
<table>
<tr>
<td><a href='MytestSite11.com'>site21</a></td>
<td><a href='MytestSite12.com'>site22</a></td>
<td><a href='MytestSite13.com'>site23</a></td>
</tr>
<tr>
<td><a href='MytestSite21.com'>site21</a></td>
<td><a href='MytestSite22.com'>site22</a></td>
<td><a href='MytestSite23.com'>site23</a></td>
</tr>
<tr>
<td><a href='MytestSite31.com'>site21</a></td>
<td><a href='MytestSite32.com'>site22</a></td>
<td><a href='MytestSite33.com'>site23</a></td>
</tr>
</table>
我正在尝试获取第二行第二列的href元素,即MytestSite22。我试过跟随jquery代码,但它正在返回我的undefine.Not确定错过了什么。
$(function () {
var $row = $('table tr').eq(1);
var $col=$row.eq(1)
alert($col.attr('href'));
});
答案 0 :(得分:5)
您忘了在第二个变量中指定元素:
var $col=$row.find('td').eq(1)
然后,在其中指定锚点:
alert($col.find('a').attr('href'));
对于它的价值,美元字符作为变量前缀通常用于表示数组或集合。在这里,您在单个项目上使用它。
答案 1 :(得分:2)
这是第二行第二列的href元素
$("table tr:eq(1) td:eq(1) a").attr("href");
答案 2 :(得分:1)
你可以一次完成所有操作:$('table tr:nth-child(2) td:nth-child(2) a').attr('href');
$(document).ready(function() {
alert($('table tr:nth-child(2) td:nth-child(2) a').attr('href'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td><a href='MytestSite11.com'>site21</a></td>
<td><a href='MytestSite12.com'>site22</a></td>
<td><a href='MytestSite13.com'>site23</a></td>
</tr>
<tr>
<td><a href='MytestSite21.com'>site21</a></td>
<td><a href='MytestSite22.com'>site22</a></td>
<td><a href='MytestSite23.com'>site23</a></td>
</tr>
<tr>
<td><a href='MytestSite31.com'>site21</a></td>
<td><a href='MytestSite32.com'>site22</a></td>
<td><a href='MytestSite33.com'>site23</a></td>
</tr>
</table>
答案 3 :(得分:0)
这是一种直接的方法:
var $row = $('table tr:nth-child(2)'), // row
$col = $row.children('td:nth-child(2)'), // column
$a = $col.children('a'); // anchor
alert($a.attr('href'));
:nth-child(n)
选择器将匹配共享父元素的子元素中某个索引处的元素。请注意,它是基于1的,而不是基于0的(例如,像JavaScript数组),因此第二个孩子是:nth-child(2)
,第三个孩子是:nth-child(3)
等。
答案 4 :(得分:0)
试试这个:
var a = $("tr").eq(1).find("td").eq(1).find("a").attr("href");
alert(a);
答案 5 :(得分:0)
还可以通过函数检索值的一种可能性:
getMe(RowNumber,ColumnNumber);
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script>
$(document).ready(function(e) {
getMe(2,2);
});
function getMe(rowN, colN) {
var link = $("tr:eq("+(rowN-1)+") td:eq("+(colN-1)+") a").attr("href");
alert(link);
}
</script>