Ajax插入的内容在DOM中无法访问

时间:2011-03-06 23:42:21

标签: javascript jquery ajax

我正在开发一个纯粹的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

2 个答案:

答案 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链接时,可能是负载未完成?似乎这是可能的。

谢谢,         托德