<tr>
<td>abc</td>
<td>Education</td>
<td>abc customer</td>
<td>123</td>
<td>abc@gmail.com</td>
<td>
<button class="edit_record">Edit</button>
</td>
</tr>
我的JS
$(function () {
$('body').on('click', '.edit_record', function (e) {
$.each($(this).closest('tr'), function (i, obj) {
//get all td text except last one
});
});
});
我试过
if(i != 5){console.log($(this).find('td').text());}
但它不起作用,包括最后一个编辑值。
答案 0 :(得分:3)
另一种方法是针对按钮的父母的兄弟姐妹......不需要像这样对索引大惊小怪
$('body').on('click', '.edit_record', function (e) {
$(this).parent().siblings().each(function(){
console.log( $(this).text() );
});
});
答案 1 :(得分:2)
您的代码永远不会到达索引5,因为您循环遍历tr
元素。不是它的td
元素,因为表行只存在1个元素,使用下面的代码:
$.each($(this).closest('tr').find('td'), function(i, obj) {
// i right now having value 0 - 5(this is your last index)
});
更新了DEMO
答案 2 :(得分:1)
您可以使用.parent(), .parent('td') or .closest('td')
获取该按钮的父级,然后找到.siblings
,这将是td
个,但是包含该按钮的.each()
。而且,您可以使用jQuery.each()
代替 $(this).closest('td').siblings().each(function(i, td) {
//The last td is excluded here as only the siblings are iterated.
});
。:
$(function() {
$(document).on('click', '.edit_record', function() {
$(this).closest('td').siblings().each(function(i, td) {
console.log( td );
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table><tbody>
<tr>
<td>abc</td>
<td>Education</td>
<td>abc customer</td>
<td>123</td>
<td>abc@gmail.com</td>
<td>
<button class="edit_record">Edit</button>
</td>
</tr>
</tbody></table>
AsyncImageLoader.sharedLoader().cancelLoadingURL(cell.rideImageView.imageURL)
cell.rideImageView.image = UIImage(named: "Unloaded")
cell.rideImageView.imageURL = NSURL(string: ride.rideImageSmall!)