用jQuery替换字符串中的链接文本

时间:2015-03-30 20:14:34

标签: jquery

使用twitter fetcher script,但链接未被缩短'链接破坏网站设计。

每个订阅源条目的HTML都作为字符串传递给回调函数。我需要解析字符串并用href属性替换链接文本。

2 个答案:

答案 0 :(得分:0)

这是我的解决方案。从回调中解析HTML字符串对于stackoverflow来说似乎是唯一的。我花了一些时间尝试使用jQuery方法而不是直接访问对象属性。 2个嵌套循环也会降低脚本的可移植性。

function replaceLinkText(tweetCode) {
    var parsed = $.parseHTML(tweetCode);
    var outputString = "";
    $.each(parsed, function(i,el) {
        if (el.className == "tweet") {
            $.each(el.children, function(eli, elel) {
                if (elel.nodeName == 'A' ) {
                    elel.textContent = elel.href;
                }
            });
        }
        outputString += el.outerHTML;
    });

    return outputString;
}

答案 1 :(得分:0)

这似乎是一个更简单的答案:

function replaceLinkText(tweetCode) {
    var parsed = $('<div>' + tweetCode + '</div>');
    $(".tweet > a", parsed).each(function(eli, elel) {
        $(elel).text(elel.href);
    });
    return parsed.html();
}