如何在表元素中拉出href属性

时间:2015-09-25 20:01:18

标签: javascript jquery

我有桌子,桌子的每个单元格都有特定的网址。我试图使用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'));
        });

6 个答案:

答案 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)等。

这是CodePen example

答案 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>