Javascript更改div中跨度的文本

标签 javascript jquery html css

我的html是这样的,只能识别div的类,没有span的id。我需要用那些 span 中的一些其他文本替换一个 href 文本和一个图像。

<div class ="myclass">
    <span style="vertical-align:middle;">
      <a href="http://link1"></a>
    </span>

    <span style="vertical-align:middle;">
      <a href="http://link2"></a>
    </span>

    <span style="vertical-align:middle">
      <span class="myspan">
        <a href="http://testlink3">
        <img title="test" class="imglink"></a>
      </span>
    </span>

    <span>
      <a href="http://link4">Text - *This text needs to be replaced*</a>
    </span>
</div>

在上面的代码中,我需要将第三个 span 中的 img 替换为可点击的文本(应该将我们带到 url)和第四个 span 到新文本(保持 url 相同)。

当缺少 ID/类时,如何识别这些特定的 span

最佳答案

我们在这里有 3 件不同的事情要做:

如何替换给定元素内的内容

这可以很快完成:

$("selector").html("New text, same href");

用另一个元素替换给定的元素

这可以通过这种方式完成:

$("selector").replaceWith("<a href='somewhere.html'>I replaced  an Img</a>");

选择 DOM 元素

当您没有 ID,也没有元素的 CSS 类,但您确实知道它在另一个元素中的位置以及有关该元素的一些信息(如 tagName)时,您可以选择父元素并指定一个相对位置。

var myElement = $("parentElement").find("tagName:eq(position)");

记住这种选择器("tagName:eq(position)")是零索引,所以如果你想抓取第三个元素,你需要告诉 jQuery tagName:eq(2)

因此,假设您的父元素(未在问题中给出)是一个带有 parent CSS 类的 div

您要做的第一件事是选择此 div。

var parent = $(".parent");

然后你想在第三个跨度内找到 Img。

var myImg = parent.find("span:eq(2)").find("img");

现在你可以用你想要的任何东西替换这个元素

myImg.replaceWith("<a href='somewhere.html'>I replaced  an Img</a>");

请注意,jQuery 允许您将 HTML 元素作为纯字符串传递。

最后,您需要更改第四个跨度内的文本。这可以通过以下方式完成:

parent.find("span:eq(3)").find("a").html("New text, same href");

关于Javascript更改div中跨度的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21236331/

相关文章:

jquery - 比较两个数字 9<10

javascript - 使用 jQuery ScrollTop animate 在 Chrome 中出现奇怪的第一次滚动延迟

javascript - CanJS/JavaScriptMVC : How to store a view template in a variable

javascript - CoffeeScript 缩进

javascript - Jquery 调整 li 大小以适应 ul

html - 英特尔 XDK 是开源的吗?

html表格单元格间距在div中不起作用

javascript - 我的函数要么没有正确声明,要么在正确的位置 "use strict"。

JavaScript 不是 "opening"url

jquery - 使用 jQuery 来确定一个 div 的 child 是否有一个 css 类