用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对象。