Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax插入的内容在DOM中不可访问_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript Ajax插入的内容在DOM中不可访问

Javascript Ajax插入的内容在DOM中不可访问,javascript,jquery,ajax,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&g

我正在一个纯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(单击…,但不在这里)。有什么方法可以做到这一点吗


具体来说,我需要加载链接并将href从#anklets更改为?category=anklets

以下内容如何

$('#categoryListing').load('../common.html #categoryLinksUL', function() { $('li a[href^="#"']').each(function () { this.href = '?category=' + this.href.substr(1); }); }); $('#categoryListing').load('../common.html#categoryLinksUL',function(){ $('li a[href^=“#“']”)。每个(函数(){ this.href='?category='+this.href.substr(1); }); });
在我的示例中,加载完成后,将调用匿名函数。它使用哈希HREF替换每个锚点,并根据您的描述将其替换为HREF。

谢谢您,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在那里识别CategoryList呢?我尝试将each函数移到load函数之外,CategoryList不包含任何链接。这是因为当它尝试获取CategoryList链接时,加载没有完成吗?似乎这是可能的

谢谢,
Todd

你说它们不是DOM的一部分是什么意思?你说列表是加载的,所以它们应该是加载的。或者它应该加载此内容吗?你能看到列表吗?列表加载了,我也能看到。但是当我这样做时:$('categoryLinksUL li a')。每个(函数(){',categoryLinksUL为空。我手动将列表添加到html中,categoryLinksUL不为空。很高兴我能提供帮助。请不要忘记将问题标记为已回答。谢谢。一旦加载的html添加到DOM中,就会调用匿名函数。如果在加载()之后调用匿名函数函数,则页面上仍然没有HTML。