在这个jquery脚本中卡住了一点。我希望在勾选复选框时获取link
中最后td
的{{1}}属性。
这是HTML
tr
我希望在多个复选框的时候获取最后一个td中的每个链接属性 我试过的是这个
<tr>
<td><input type="checkbox" name="check" value="happy"></td>
<td style="width: 310px; line-height: 14px;" class="fileName <?php echo $myClass; ?>" ><div style="width: 310px; overflow: hidden;"><a href="https://abcd.com/<?php echo $info."/".$myinfo['name'];?>" title="<?php echo $myinfo['name'];?>" target="_blank"><?php echo $fileName.'.'.$fileExtension; ?></a></div></td>
<td style="width: 150px;"><?php echo $fileSize; ?> KB</td>
<td style="width: 150px;"><?php echo $fileModified; ?></td>
<td style="width: 150px;">
<a href="javascript:void(0);" ><span id="" link="https://abcd.com/<?php echo $info."/".$myinfo['name'];?>" title="<?php echo $myinfo['name'];?>" class="shareIcon"></span></a>
<a href="javascript:void(0);"><span id="deleteIcon" link="<?php echo $myBucket['name'];?>" class="deleteIcon"></span></a>
</td>
</tr>
答案 0 :(得分:1)
有几个错误:
1)验证您的html,input
标记的不正确关闭。这导致以下
checked.parent() //points the body not its actual td
2)转义/
个字符的正确方法。
link="https://abcd.com/<?php echo $info."/".$myinfo['name'];?>" //WRONG
3)以下代码仅指向td
的{{1}}父代,因此失败
input
最后,没有必要迭代以获得可以使用checked.parents('td').find('.shareIcon').attr('link')
的最后td
:last
答案 1 :(得分:1)
试试这个脚本:
$("input[name='check']").on('change', function () {
var checked = $("input[name='check']:checked");
$.each(checked, function () {
if (checked.length >= 1) {
$.each(checked.parent().siblings().last().children().children(), function() {
console.log($(this).data("link"));
});
}
})
});
这个HTML:
<table>
<tr>
<td>
<input type="checkbox" name="check" value="happy">
</td>
<td style="width: 310px; line-height: 14px;" class="fileName <?php echo $myClass; ?>">
<div style="width: 310px; overflow: hidden;"><a href="https://abcd.com/areeb" title="areeb" target="_blank">some_file.php</a>
</div>
</td>
<td style="width: 150px;">212KB</td>
<td style="width: 150px;">some_file.php</td>
<td style="width: 150px;"> <a href="javascript:void(0);"><span id="" data-link="https://abcd.com/areeb" title="<?php echo $myinfo['name'];?>" class="shareIcon"></span></a>
<a href="javascript:void(0);"><span id="deleteIcon" data-link="<?php echo $myBucket['name'];?>" class="deleteIcon"></span></a>
</td>
</tr>
</table>
我刚刚改变你的条件,以便它甚至可以匹配一个元素。然后$.each()
函数也会稍微改变一下。我首先定位你的复选框的父级td
,然后我得到所有的兄弟姐妹,然后我选择最后一个兄弟,然后我进入它的a
的儿童或锚标签然后我弹出进入那些a
s的子项以及span
s,然后对于每个范围我记录它的data-link
属性。
我刚刚将link
属性的名称更改为data-link
属性,以便通过data
功能轻松访问。
答案 2 :(得分:1)
var inputs = $('input[name="check"]').on('change', function () {
inputs.each(function () {
var i = $(this);
if (i.is(':checked')) {
console.log(i.closest('tr').find('.shareIcon').attr('link'));
}
});
});