【问题标题】:How to change Href for multiple Anchors within Table? [duplicate]如何更改表中多个锚点的 Href? [复制]
【发布时间】:2014-05-08 09:14:48
【问题描述】:

如何使用以下方法更改表的 HREF 值

<table id="tbl">
<td>
<a href="1">test1</a>
<a href="2">test2</a> 
<a href="3">test3</a>
</td>
<td><label>foo1</label></td>
<td><label>foo2</label></td>
<td><label>foo3</label></td>
</table>

到这里:

<table id="tbl">
<td>
<a href="1foo1">test1</a>
<a href="2foo2">test2</a> 
<a href="3foo3">test3</a>
</td> 
<td><label>foo1</label></td>
<td><label>foo2</label></td>
<td><label>foo3</label></td>
</td>
</table>

基本上,我是根据另一列的数据重新标记锚点。我更喜欢使用jquery。 谢谢!

【问题讨论】:

标签: javascript jquery html


【解决方案1】:
$("#tbl td a").each(function() {
    var oldVal = $( this ).attr( "href" );
    $( this ).attr( "href" ,  oldVal + "foo" + oldVal);
});

【讨论】:

  • 打败我吧 :( +1
  • 这只会为所有href添加foo1;不会有 foo2foo3
【解决方案2】:

你可以使用:

$('#tbl td a').each(function(i) {
    var text = $('#tbl label').eq(i).text(),
        oldHref = $(this).attr('href');
    $(this).attr('href', oldHref + text);
});

Fiddle Demo


如果要删除标签文本中的尾随空格,可以使用 $.trim()
$('#tbl td a').each(function(i) {
    var text = $('#tbl label').eq(i).text(),
        oldHref = $(this).attr('href');
    $(this).attr('href', oldHref + $.trim(text));
});

【讨论】:

  • +1 表示eq()。您可以通过使用$('label', $(this).closest('table')) 作为标签选择器使其更加通用,因此它不依赖于表的 id。
  • 这看起来很有希望。它适用于 IE8,但不适用于 IE9。 IE9 给了我正确的 url,但它在“text”变量中添加了空格。
猜你喜欢
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 2015-01-03
  • 2020-02-05
  • 1970-01-01
  • 2014-07-01
  • 2020-02-16
  • 1970-01-01
相关资源
最近更新 更多