【问题标题】:jQuery to replace one href value with another from children elementsjQuery用子元素中的另一个href值替换一个href值
【发布时间】:2012-07-02 02:21:29
【问题描述】:

我正在尝试处理我们的系统如何为日历吐出代码,并且由于格式的原因,我需要将某些链接的 href 值更改为其子链接的值。下面是一些示例代码:

<td class="date eventDate">
<a class="dateLink" href="calendar?DATE=2012-07-06&VIEW=day">6</a>
<br>
  <div>
    <div class="event">
      <a href="/calendar?date=20120702" class="event"></a>
      <a href="/calendar?root=320794" class="eventon">6 July</a>
      </div>
  </div>
</td>

我需要 jQuery 将第一个标签的 href 值替换为第三个标签的 href 值。我不太确定如何让 jQuery 浏览页面的所有元素来实现这一点。

我认为过程是查找所有 a.dateLink 并将当前选择替换为子元素 a.eventon 的 href 值,然后转到下一个 a.dateLink 并重复。如果没有子元素 a.event 则继续下一个。

谁能帮我解决我的需要?

【问题讨论】:

  • 你怎么知道应该是/calendar?root=320794而不是/calendar?date=20120702?表格单元格中第一个&lt;a&gt;href 是否应该始终替换为最后一个&lt;a&gt;href
  • 你想要两个中的哪一个, 或者这个7 月 6 日
  • @muistooshort /calendar?root=320794 是我设置的,以便它可以满足客户的需求。
  • @JeffRobertDgala 我一直想获取 a.eventon 的值来替换 a.dateLink 的值希望能有所帮助
  • 检查我更新的答案。 :) 让我知道它是否有效

标签: jquery


【解决方案1】:

这里有一些伪代码可以帮助您入门:

//get all td.date.eventDate
//for each element in collection
    //find a.dateLink child
    //find a.eventon child
    //if a.eventon is not null or empty
        //set a.dateLink[href] to a.eventon[href]
    //else
        //continue loop

【讨论】:

  • 非常好,所以我的想法是正确的。我会继续努力看看我能到达哪里。谢谢
【解决方案2】:

这段代码就可以了

    $("td.data.eventDate").each(function(){
        if($(this).find("a.eventon") > 0)
        {
            $(this).children("a.dateLink").attr("href",$(this).children("a.eventon").attr("href"));
        }
    });

【讨论】:

  • 谢谢 - 看到代码从理论到实践都有很大的不同。非常感谢
  • 很高兴能为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
相关资源
最近更新 更多