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

用jQuery替换字符串中的链接文本,jquery,Jquery,使用,但链接是“未分类”的链接,会破坏网站设计 每个提要条目的HTML作为字符串传递给回调函数。我需要解析字符串并用href属性替换链接文本。这是我的解决方案。从回调解析中的HTML字符串似乎是stackoverflow独有的。我花了一段时间尝试使用jQuery方法,而不是直接访问对象属性。这两个嵌套循环还降低了脚本的可移植性 function replaceLinkText(tweetCode) { var parsed = $.parseHTML(tweetCode); va

使用,但链接是“未分类”的链接,会破坏网站设计


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

这是我的解决方案。从回调解析中的HTML字符串似乎是stackoverflow独有的。我花了一段时间尝试使用jQuery方法,而不是直接访问对象属性。这两个嵌套循环还降低了脚本的可移植性

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;
}

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

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

这是一个答案还是问题的一部分?看起来您应该可以使用$.tweet>a,parsed.each来访问tweet代码中的所有链接。您是在问问题还是在回答问题?innerText也不能移植到Firefox。textContent是标准属性。parsed.html-未定义不是函数。这就是我尝试jQuery方法时所做的。直接访问属性很好。我刚刚取消了对$.parseHTML的调用。它返回一个数组,而不是我不需要的jQuery对象。