【问题标题】:jquery replace each link attr for a set of divsjquery替换一组div的每个链接attr
【发布时间】:2015-06-24 22:39:00
【问题描述】:

您好,这是我的第一篇文章,请多多包涵。

我有一个大型“响应式”页面,它以编程方式从一堆 json 数据槽 php 加载(最多 10 个)幻灯片(我没有构建这个东西)。 我必须处理的结果是一组包含链接和图像的 div。

我需要将链接的实际 href 更改为其他内容,因为源链接和我正在处理的实际页面具有不同的结构。

基本上我需要获取href并进行比较。如果是一件事,就换另一件事。

我正在处理的示例。

样本部门想象其中有 10 个是自动生成的:

<div id="slidesdiv" class="validslider"> <a href="/something/somewhere"><img src="#" width="0px" />Firstlink</a></div>
<div id="slidesdiv" class="validslider"> <a href="/somethingelse"><img src="#" width="0px" />SecondLink</a></div>

示例代码

$(document).ready(function () {
    $('div#slidesdiv a').each(function () {
        if ($(this).attr('href') !== '/something/somewhere') {
            $(this).attr('href', 'reallylongtring1');
        } else if ($(this).attr('href') !== '/somethingelse') {
            $(this).attr('href', 'reallylongstring2');
        }
    });
});

我遇到的问题是它没有将正确的链接应用到正确的标签。这有点奇怪。欢迎任何帮助,我希望我已经足够清楚地解释了这个问题。

我一直在研究一个 jsfiddle,我终于开始工作了,但是它给了我错误的结果。 This is a jsfiddle of that example.

【问题讨论】:

  • 有多个具有相同id 的div 的事实将导致无穷无尽的麻烦。如果可能,请选择类 (validslider)。此外,您将根据href 是否相等进行替换 - 因此对于除/something/somewhere 之外的其他任何内容,您将用@987654330 替换href @.
  • 基于类选择的版本,并根据href 确实 相等的内容进行替换:jsfiddle.net/drped9pv/4
  • 是的,多个 id 是一个问题,我将在“生成代码”中解决这个问题。还要感谢保罗。它似乎在小提琴上效果很好,我会对其进行测试并回来......到目前为止,这对我来说似乎是一个可行的答案。谢谢。

标签: jquery replace hyperlink each attr


【解决方案1】:

在 .each 中尝试选择器 $('.validslider a')。您不能有多个包含相同 id 的元素,请使用 class。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2014-02-04
    • 1970-01-01
    • 2015-06-06
    • 2012-07-05
    • 2011-05-15
    • 1970-01-01
    相关资源
    最近更新 更多