获取表行的td:last-child中第一个a的最后一个uri段

时间:2014-08-25 01:45:42

标签: jquery

我有这个html包含一个股票价格表

<tr id='row-7'>
<td>Glencore</td>
<td>Share Price</td>
<td>360</td>
<td class='actions'>
<a href="http://localhost/ye/index.php/enterprise/addressbook/read/21345" class="edit_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" role="button">
<span class="ui-button-icon-primary ui-icon ui-icon-document"></span>
<span class="ui-button-text">&nbsp;View</span>
</a>
<a href="http://localhost/ye/index.php/enterprise/addressbook/delete/21345" class="delete_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" role="button">
<span class="ui-button-icon-primary ui-icon ui-icon-document"></span>
<span class="ui-button-text">&nbsp;Delete</span>
</a>
</td>
</tr>

我在表格中有很多行,我想抓住所有行的a的所有最后一段,类名为.selected

这是a <a href="http://localhost/ye/index.php/enterprise/addressbook/read/21345" class="edit_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" role="button"> <span class="ui-button-icon-primary ui-icon ui-icon-document"></span> <span class="ui-button-text">&nbsp;View</span> </a>

我想要阅读的最后一个uri片段是21345,但我想读取所有行,并且还获取最后一个uri并将它们放在逗号分隔列表中。

这是我到目前为止的jquery

var last_uri_segments = $('.mytable tr.selected td:last-child').map(function () {
    var href = $(this).attr("href");
    var last_segment = href.substr(href.lastIndexOf('/') + 1);
    return this.last_segment;
    }).get().join(',');

    alert(last_uri_segments);

我的第一个问题是我如何定位td的最后一个孩子中的最后一个a

更新

这是小提琴http://jsfiddle.net/4tpwq94b/2/

2 个答案:

答案 0 :(得分:1)

这样的事情怎么样?

var $selectedRows = $("table tr.selected");
var idsFound = [];
$selectedRows.each(function() {
    var url = $(this).find("td").last().find("a").first().attr("href");
    var lastSegment = url.substring(url.lastIndexOf("/") + 1, url.length);
    idsFound.push(lastSegment);
});
console.log(idsFound.join(","));

答案 1 :(得分:0)

这样的东西?

var uriList = $('tr.selected a').map(function(){
   return this.href.split('/').reverse()[0];              
}).get();

现在您可以使用uriList.join(',')将其设为逗号分隔值。

DEMO