我是javascript的新手。 需要删除任何现有的锚点(例如:#page33)使用javascript或jquery动态地(客户端)向列表中的所有链接添加其他锚点(例如:#page1):
初始html(来自服务器):
<ul id="lang_menu">
<li><a href="home.php?lang=eng#page33">English</a></li>
<li><a href="home.php?lang=tam#page33">Tamil</a></li>
<li><a href="home.php?lang=sin#page33">Sinhala</a></li>
</ul>
这应该表现得像(在客户端使用#page1替换#page33):
<ul id="lang_menu">
<li><a href="home.php?lang=eng#page1">English</a></li>
<li><a href="home.php?lang=tam#page1">Tamil</a></li>
<li><a href="home.php?lang=sin#page1">Sinhala</a></li>
</ul>
这是我需要Developing Website
的地方请帮帮我。提前谢谢......
答案 0 :(得分:5)
尝试这种方式: -
$(function () {
$('#lang_menu li a').attr('href', function (_, oldHref) {
return oldHref + "#page1";
});
});
对于您的更新问题,您可以尝试以下方式:
使用正则表达式替换网址中的#part。
$(function () {
$('#lang_menu li a').attr('href', function (_, oldHref) {
oldHref = oldHref.replace(/\#(.*)/g, "#page1");
if(oldHref.indexOf('#') == -1)
oldHref += "#page1";
return oldHref;
});
});
答案 1 :(得分:3)
如果你正在处理很多DOM元素,那么懒得添加锚点会更便宜。
jQuery("a").bind("click", function(e) {
e.preventDefault();
document.location = jQuery(this).attr("href") + "#page1";
});