Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
jquery嵌套了每个问题_Jquery_Xml - Fatal编程技术网

jquery嵌套了每个问题

jquery嵌套了每个问题,jquery,xml,Jquery,Xml,请参见下面的编辑。 我正在尝试让一些jquery在我正在构建的wordpress插件中工作。在wordpress中使用jQuery时,使用字符串“jQuery”代替“$”习惯用法,仅供参考 示例xml: <person> <Name>Some Name</Name> <location> <locationName>One Address</locationName>

请参见下面的编辑。 我正在尝试让一些jquery在我正在构建的wordpress插件中工作。在wordpress中使用jQuery时,使用字符串“jQuery”代替“$”习惯用法,仅供参考

示例xml:

<person> <Name>Some Name</Name> <location> <locationName>One Address</locationName> </location> <date> <startDate>01-01-09</startDate> </date> </person> jquery示例:

jQuery(text).find("person").each(function(){
    jQuery("#active_list")
        .append(
            "<div id=\'Entry\'>"
            + jQuery(this).find("Name").text()
            + "<b> at </b>"
    ;

    jQuery(this)
        .find("location")
        .each(function(){
            jQuery("#active_list")
                .append(
                    jQuery(this).find("locationName").text()
                    + " <b> on </b>"
                )
            ;
        })
    ;

    jQuery("#active_list")
        .append(
            jQuery(this).find("date").find("startDate").text()
            + "</div>"
        )
    ;
});
然后坏的加价产生了:

<div id="Entry"> Some Name<b> at </b></div>One Address <b> on </b>01-01-09 正如您所看到的,它在退出第二个嵌套循环之后插入/divs。我显然做错了什么,但我不知道是什么。有什么想法吗

编辑:如果放置

jQuery("#active_list").append("<div id=\'ActivityEntry\'>");

在它自己的线路上,它随后立即关闭div。所以我猜我需要用jquery构建一个div元素,然后打包,然后附加我的div元素。

我对您的问题的建议

jQuery(text).find("person").each(function(){
   var html;
   html = jQuery(this).find("Name").text() + "<b> at </b>";

   jQuery(this).find("location").each(function(){
      html += jQuery(this).find("locationName").text() + " <b> on </b>";
   });

   html += jQuery(this).find("date").find("startDate").text();
   jQuery("#active_list").append("<div id=\'Entry\'>" + html + "</div>");
});

这应该行得通。你试着对它进行微调。脚本无法工作的原因是jquery将每个字符串转换为一个对象。

我对您的问题的建议

jQuery(text).find("person").each(function(){
   var html;
   html = jQuery(this).find("Name").text() + "<b> at </b>";

   jQuery(this).find("location").each(function(){
      html += jQuery(this).find("locationName").text() + " <b> on </b>";
   });

   html += jQuery(this).find("date").find("startDate").text();
   jQuery("#active_list").append("<div id=\'Entry\'>" + html + "</div>");
});

这应该行得通。你试着对它进行微调。脚本无法工作的原因是jquery将每个字符串转换为一个对象。

将jquery与Wordpress结合使用的小技巧:将其包含在函数中。它将允许您使用熟悉的$函数,并防止您用变量污染全局名称空间

例如,您的代码可以重写为:

(function($) {

    ... (code with $) ...

})(jQuery);
至于您的问题的答案,如果您使用this变量,嵌套eaches在jQuery中不起作用。若要解决您的问题,请尝试使用以下各项的完整样式:


使用val1和val2来代替它。

将jQuery与Wordpress结合使用的小技巧:将其包含在函数中。它将允许您使用熟悉的$函数,并防止您用变量污染全局名称空间

例如,您的代码可以重写为:

(function($) {

    ... (code with $) ...

})(jQuery);
至于您的问题的答案,如果您使用this变量,嵌套eaches在jQuery中不起作用。若要解决您的问题,请尝试使用以下各项的完整样式:


用val1和val2代替这个。

我知道我会把事情搞砸的,那只是一个疏忽。输入xml格式良好。是的,您可以使用jQuery以以下方式创建元素:$。您还可以立即修改它们,如:$.attrid,Entry.htmlhtml;我知道我会把事情搞砸的,那只是个疏忽。输入xml格式良好。是的,您可以使用jQuery以以下方式创建元素:$。您还可以立即修改它们,如:$.attrid,Entry.htmlhtml;我按照您的建议修改了代码,行为与您相同。我认为poh所说的jquery将所有内容都转换为对象是准确的,所以它找到了一个未关闭的div对象并为我关闭了它。是的,我的错,我没有仔细阅读这个问题。不过,第一条建议仍然适用:我按照您的建议修改了代码,使用了相同的行为。我认为poh所说的jquery将所有内容都转换为对象是准确的,所以它找到了一个未关闭的div对象并为我关闭了它。是的,我的错,我没有仔细阅读这个问题。尽管如此,第一条建议仍然适用: