Jquery:如何迭代特定表行的所有链接

时间:2015-12-18 17:31:58

标签: jquery

假设这是我的表

<table border="1" id="tbl">
    <tr class="clsHead">
        <td>
            <a href="b.aspx">first row first cell</a>
        </td>
        <td>
            <a href="b.aspx">first row second cell</a>
        </td>
    </tr>
    <tr>
        <td colspan="2">
            <a href="">seconde row</a>
        </td>

    </tr>
</table>

我尝试了这个jquery但没有按预期工作。我试图更改或修改具有类名 clsHead

的表格行中的那些链接的href
$(document).ready(function () {
    $(".clsHead").each(function () {
    alert($(this).attr('href'));
        $(this).attr('href',$(this).attr('href')+'&qString=1') ; 
    });
});

如果可能的话告诉我哪里弄错了。感谢

2 个答案:

答案 0 :(得分:3)

您正在尝试获取/设置每个href元素的.clsHead属性,因为它们没有href个属性,所以它显然无效。

您需要选择后代a元素:

$(".clsHead a").each(function() {
  $(this).attr('href', $(this).attr('href') + '&qString=1');
});

虽然只需访问href的{​​{1}}属性:

this

或者没有jQuery:

$(".clsHead a").each(function() {
  this.href = this.href + '&qString=1';
});

您可能需要将该逻辑包装在DOM加载的事件回调中:

var elements = document.querySelectorAll('.clsHead a');
Array.prototype.forEach.call(elements, function (el)  {
  el.href = el.href + '&qString=1';
});

答案 1 :(得分:0)

试试这个。

 $(document).ready(function (){
 $(".clsHead a").each(function ()
 {
   alert($(this).attr('href'));
  $(this).attr('href',$(this).attr('href')+'&qString=1') ; 
});
});