【问题标题】:Change th tag value更改标签值
【发布时间】:2012-08-14 11:57:28
【问题描述】:

知道如何访问class="CenteredHeader" 下的每个th 以通过jQuery 向a 标签添加更多参数吗?

<tr class="CenteredHeader">
  <th scope="col"></th>
  <th scope="col">
      <a href="/BoxOffice/Movies/807?sort=MovieName&amp;sortdir=ASC">Pelicula</a>
  </th>
  <th scope="col">
      <a href="/BoxOffice/Movies/807?sort=TechnologyName&amp;sortdir=DESC">Tecnologia</a>
  </th>
</tr>

【问题讨论】:

标签: javascript jquery html


【解决方案1】:
$('.CenteredHeader th a').each(function() {
    $(this).attr('href', function(i, oldhref) {
         return oldhref + '&amp;p1=111'
     });
})​;

如果需要,您可以通过上述解决方案对每个a 标签使用不同的参数。

也可以像@François Wahl comment所说的那样做:

$('.CenteredHeader th a').attr('href', function(i, oldhref) {
     return oldhref + '&amp;p1=111'
})​;

【讨论】:

  • 支持用函数设置 attr 值的 jQuery 最低版本是多少?看起来很酷:)
  • @LiviuT。 - 1.1 及更高版本。 (所以几乎任何版本。)你可以用其他方法做同样的事情,比如.html()、.text()和.val()。
  • P.S.请注意,如果使用.attr() 的语法,则不需要.each() 循环,将为jQuery 对象中的每个元素调用.attr() 回调...
  • @thecodeparadox 谢谢老兄!你最懂我心!很棒的答案。这正是我需要的。
  • @nnnnnn:我不想编辑答案,但你是对的。这也有效:$('.CenteredHeader th a').attr('href', function(i, oldhref) { return oldhref + '&amp;amp;p1=111' });,参见演示:jsfiddle.net/j7AGQ。 @thecodeparadox:如果您愿意,请随时将其添加到您的答案中。
【解决方案2】:

试试这个:

$('.CenteredHeader th a').attr('href', "/BoxOffice/Movies/807?sort=MovieName&amp;sortdir=ASC&amp;p1=111")

【讨论】:

  • +1 用于单行解决方案。据我了解,OP 想要更改每个标签中的所有 href 属性。这似乎可以做到。
  • 我不确定这是否合适,因为示例中的 th 有两个具有不同 href 值的锚。
  • @nnnnnn:的确,从原始帖子来看,每一行都不会被设置为相同的值,但这并不是很明显。如果只有文本的结尾必须更改thecodeparadox's answer可能会更合适。
【解决方案3】:
$('.CenteredHeader a').each(function(index, a) {
  var newHref = $(a).attr('href')+'&key=value';
  $(a).attr('href', newHref );
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多