【发布时间】:2026-02-01 12:50:01
【问题描述】:
我正在尝试用 JS(Node 和 ajax(以及 jQuery 库))替换我的所有 PHP,但是在将以下 PHP 脚本转换为 ajax 引擎时遇到了问题。
<?php
$xmlDoc=new DOMDocument();
$xmlDoc->load("Administration/data/people.xml");
$xx=$xmlDoc->getElementsByTagName('person');
$hintt="";
for($ii=0; $ii<($xx->length); $ii++)
{
$yy=$xx->item($ii)->getElementsByTagName('id');
$zz=$xx->item($ii)->getElementsByTagName('fullName');
if ($yy->item(0)->nodeType==1)
{
echo "<button type='button' class='mybutton' name='users'>" .
$zz->item(0)->childNodes->item(0)->nodeValue . "</button>";
}
}
?>
这是我的 ajax 尝试:
<div id="loadMe">
<h1>Reading..</h1>
</div>
<script>
$.ajax({
type: "GET",
url: "Administration/data/people.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('person').each(function(){
var fullName = $(this).attr('fullName');
$("<button type=button class=mybutton value='+fullName+'></button>").html("<h3>'+fullName+'</h3>").appendTo('#loadMe');
});
}
});
</script>
对我来说,它看起来很相似,但是 JS 不工作。任何人都看到不一致或可以告诉我为什么我的 XML 元素没有附加到指定的 div 标记?非常感谢各位朋友!
编辑(14 年 1 月 24 日凌晨 1 点 24 分): 我认为提供我的 XML 会有所帮助,也许我引用的数据有误?
<people>
<person>
<id>10</id>
<fullName>Philadelphia Collins</fullName>
<firstName>Philadelphia</firstName>
<lastName>Collins</lastName>
<age>62</age>
<hometown>Sunnyvale</hometown>
<job>Restraunt Owner</job>
</person>
<people>
【问题讨论】:
-
你应该使用
.done()和.fail()而不仅仅是success: -
以
$('<button type='button'开头的行需要在字符串中使用双引号。您应该在浏览器的控制台中看到有关此问题的错误。 -
我都使用了,但这不是问题的原因。 @Blazemonger 你有没有看到任何逻辑错误?
-
另外,您的
<script>应移至页面底部或包含在$(document).ready调用中。 -
这个脚本是在 jquery 加载之后运行的,对吗?这可能是问题所在;你的 devtools/javascript 控制台说什么?
标签: javascript php jquery ajax xml