【问题标题】:Javascript: Replace anchor with titleJavascript:用标题替换锚点
【发布时间】:2012-05-21 16:02:54
【问题描述】:

有没有办法使用 javascript 将锚中的文本替换为标题文本?

 <a href="#" title="3pk Cotton Boxer Shorts (13 - 14 Years)">3pk Cotton Boxer Short...</a>

【问题讨论】:

  • 使用getElementsByTagName 收集所有链接标签,使用您选择的loop 对其进行迭代,并将nodeValue 替换为title 属性
  • @Andreas 你的意思可能是firstChild.nodeValue。这只有在锚文本中没有 &lt;span&gt;s 等时才有效。使用innerHTML 更好。
  • @Imp 它被认为是“如何做”而不是 100% 完美的解决方案。否则我把它作为一个发布了:) innerHTML 你可能是对的:D

标签: javascript anchor title


【解决方案1】:

如果您想对所有链接执行此操作,请尝试以下操作:

var link = document.getElementsByTagName('a');
for(var i =0;i<link.length;i++) {
    link[i].innerHTML = link[i].title;
}

​jsFiddle example

【讨论】:

  • 如果我只想用一个类来定位锚点,这将如何工作?
  • 您可以将link[i].className 与您要与之比较的课程进行比较。
【解决方案2】:

为什么,当然有。只需将锚点的innerHTML 属性设置为等于title 属性即可。

不过,我很好奇:为什么你一开始就没有正确的文字?

【讨论】:

  • 没错!我也是这么想的:)
【解决方案3】:

使用textContent 属性:

var anchor_list = document.getElementsByTagName('a'); // or however you'd like to select the target <a>'s
for(var i = 0; i < anchor_list.length; ++i) {
    var a = anchor_list[i];
    if(typeof a.textContent != "undefined") {
        a.textContent = a.title;
    } else {
        a.innerText = a.title; // old IE support
    }
}

如果标题中有尖括号,innerHTML 可能无法按预期执行,因为它可能会被解析为 HTML。

【讨论】:

    【解决方案4】:
    var links = document.links;
    
    for (var i = 0; i < links.length; i++)
        links[i].innerHTML = links[i].attributes['title'].value;
    

    【讨论】:

    • 不要将for (var ... in ...) 用于arrays。这是给objects 的,仅此而已。
    • @Andreas Aargh!当然,我并没有意识到我在做什么。已编辑。
    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    相关资源
    最近更新 更多