我正在开发一个纯粹的jquery / js网站,主要是为了练习一些jquery。我使用load语句从常见的html文件中加载菜单,如下所示:
$('#categoryListing').load('../common.html #categoryLinksUL');
加载:
<ul id="categoryLinksUL">
<li><a href="#anklets" rel="ajax">Anklets</a></li>
<li><a href="#bracelets" rel="ajax">Bracelets</a></li>
</ul>
问题在于我现在正在使用它我需要更改上述链接的href,但它们不是dom的一部分。在之前的例子中,我能够使用.live(点击......但不是在这里。有没有办法可以实现这个目标?
具体来说,我需要加载链接并将#reflets中的href更改为?category = anklets
答案 0 :(得分:6)
以下情况如何?
$('#categoryListing').load('../common.html #categoryLinksUL', function() { $('li a[href^="#"']').each(function () { this.href = '?category=' + this.href.substr(1); }); });
在我的示例中,在加载完成后,将调用匿名函数。它使用散列HREF的每个锚点,并根据您的描述将其替换为HREF。
答案 1 :(得分:0)
谢谢Dimitry,你的解决方案基本上有效。我终于使用了:
$('#categoryListing').load('../common.html #categoryLinksUL', function() {
$('#categoryListing li a').each(function () {
var hashPos=this.href.indexOf("#");
var tCategory = this.href.substr(hashPos+1,this.href.length );
});
});
那么为什么jQuery会在那里识别categoryListing?我尝试在load函数之外移动每个函数,categoryListing不包含任何链接。是因为当尝试获取categoryListing链接时,可能是负载未完成?似乎这是可能的。
谢谢, 托德