0

我有一个 ajax 处理程序,它可以获取以下部分的页面:

<load loadloc="list" method="append" animation="fadein" >
      <li>add something to a list</li>
</load>
<load loadloc="thediv">
      <h1>hello there</h1>
      <p>this is a paragraph</p>
</load>
<load loadloc="theotherdiv">
      <img src="url.com" />
</load>

它遍历负载元素$(htmlfromajax).filter(function(){ do stuf here });

它工作得很好,但是当 php 出现错误,或者我自己放入一些其他 html 时,它会尝试遍历每一行,否则它就不起作用。(在js中我不能写多行,但是当收到ajax时我得到多行)

some php error here
<load loadloc="list" method="append" animation="fadein" >
      <li>add something to a list</li>
</load>
<load loadloc="thediv">
      <h1>hello there</h1>
      <p>this is a paragraph</p>
</load>
<load loadloc="theotherdiv">
      <img src="url.com" />
</load>

我的 ajax 处理程序的一个简单示例

如何使用 jquery 或 ajax 仅迭代加载元素?

4

2 回答 2

1

如果出现错误,我建议更改响应以符合有效的 XML 结构。例如将消息包装在<error>标签中:

<error>sometinhg here</error><load>this</load><load><h1>and this</h1></load>

然后你可以只过滤load元素:

$(data).filter('load').each(function() { ... });

http://jsfiddle.net/XC5Kc/1/

于 2013-08-02T12:09:19.187 回答
1

如果您想保持原样回复,请尝试使用

...
$('<div/>').html(data).find('load').each(function(i, el) {
    // get the load location
    var location = $(el).attr("loadloc");
...

代替

...
$(data).filter(function(){
...

查看更新的小提琴:http: //jsfiddle.net/XC5Kc/2/

于 2013-08-02T12:12:54.827 回答