我正在编写一个移动菜单,该菜单需要带有查询字符串的动态URL。
这是HTML的一部分:
<ul>
<li class="has-sub"><a href="#"><img alt="eclipse" src="image.png"/></a>
<ul role="menubar">
<li><a class="link" href="http://sitename.com?ID=7">Parent 1</a></li>
<li class="has-sub"><a aria-haspopup="true" href="#">Parent 2</a>
<ul role="menu">
<li role="presentaiton"><a class="link" role="menuitem" href="http://sitename.com?ID=21">Child 1</a></li>
<li role="presentaiton"><a class="link" role="menuitem" href="http://sitename.com?ID=19">Child 2</a></li>
<li role="presentaiton"><a class="link" role="menuitem" href="http://sitename.com?ID=18">Child 3</a></li>
<li role="presentaiton"><a class="link" role="menuitem" href="http://sitename.com?ID=17">Child 4</a></li>
<li role="presentaiton"><a class="link" role="menuitem" href="http://sitename.com?ID=16">Child 5</a></li>
</ul>
</li>
</ul>
</li>
</ul>
这是JS:
var absoluteURL = window.location.href;
var url = $('.link').attr('href')
url = url.replace('sitename', absoluteURL)
有没有一种方法可以用静态查询字符串编写动态URL:在没有任何插件的HTML中href= {link} + "ID=7"
?
好吧,我想整个问题是修复此URL冗余。如果您不想使用任何模板引擎,请尝试一下。
我删除了常见的wiz http://sitename.com?
,然后我选择了您的所有 a
',然后我在那里修改了 href
s。
var link = "http://sitename.com?";
$("li.has-sub a").attr("href", function(){
return link+this.href;
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="has-sub">
<a href="#"><img alt="eclipse" src="image.png" /></a>
<ul role="menubar">
<li><a href="ID=7">Parent 1</a></li>
<li class="has-sub"><a aria-haspopup="true" href="#">Parent 2</a>
<ul role="menu">
<li role="presentaiton"><a id="link" role="menuitem" href="ID=21">Child 1</a></li>
<li role="presentaiton"><a id="link" role="menuitem" href="ID=19">Child 2</a></li>
<li role="presentaiton"><a id="link" role="menuitem" href="ID=18">Child 3</a></li>
<li role="presentaiton"><a id="link" role="menuitem" href="ID=17">Child 4</a></li>
<li role="presentaiton"><a id="link" role="menuitem" href="ID=16">Child 5</a></li>
</ul>
</li>
</ul>
</li>
</ul>