function replaceLink(href_array){
$('.externalLink').each(function(index){
$(this).replaceWith(function() {
if ($(this).text() != "") {
return $('<a />').append($(this).contents()).attr('href', href_array[index]);
}
else { // do not use
return $('<a />').append(href_array[index]).attr('href', href_array[index]);
}
});
});
};
初始页面具有以下结构
body
p div.externalLink /p
p div.externalLink /p
p div.externalLink /p
p div.externalLink /p
p div.externalLink /p
p div.externalLink /p
/body
应该在脚本之后
body
p a#href /p
p a#href /p
p a#href /p
p a#href /p
p a#href /p
p a#href /p
/body
但事实证明
body
p /p a#href
p /p a#href
p /p a#href
p /p a#href
p /p a#href
p /p a#href
/body
那是怎么做的?
答案 0 :(得分:2)
您正在div
标签内创建p
标签,这是不正确的,打开的div
标签将自动关闭之前的p
标签,因此{{1 }}工作不正常。
在replaceWith
内尝试div
。
来源-Why <p> tag can't contain <div> tag inside it?
div
var href_array = [
"Href1", "Href2", "Href3", "Href4", "Href5", "Href6"
]
function replaceLink(href_array){
$('.externalLink').each(function(index){
$(this).replaceWith(function() {
if ($(this).text() != "") {
return $('<a />').append($(this).contents()).attr('href', href_array[index]);
}
else { // do not use
return $('<a />').append(href_array[index]).attr('href', href_array[index]);
}
});
});
}
replaceLink(href_array)