我需要帮助确定最后一点。我正在尝试将<a href='#some link'>
形式的一组锚元素更改为此形式:<a href='some_link.html'>
。我确定这是一个小小的东西,我忽略了......下面是一个链接作为一个例子。谢谢!
答案 0 :(得分:1)
您正在迭代所有<a>
元素,也包括没有href
属性的元素(即具有name
属性的元素)。请改用a[href]
,仅选择实际具有<a>
属性的href
元素替换:http://jsfiddle.net/Dh8JM/25/。
$('a[href]').attr(...);
答案 1 :(得分:1)
我建议:
$('a').each(
function(){
var h = this.href.substring(this.href.indexOf('#')+1);
if (h == 'top_page'){
return false;
}
else {
this.href = h.replace(/ /g, '_') + '.html';
}
});
以上内容将转换a
元素:
<a href='#Tax Services'>Tax Services</a>
分为:
<a href="#Tax_Services.html">Tax Services</a>
答案 2 :(得分:0)
这有用吗
$("a[href='#top_page']").attr("href","some_link.html");
答案 3 :(得分:0)
您遇到的错误是某些<a>
代码未定义href属性。 Here是一个工作小提琴。
$('a').attr('href', function(i, val) {
// skip the undefined ones with val !== undefined
if (val !== '#top_page' && val !== undefined) {
return val.replace(/\#/, '').replace(/\s/g, '_') + '.html';
}
});