传递的名称变量不会加载新的xml内容

时间:2017-06-16 02:44:58

标签: jquery html css xml variables

我已经将狗的名字从Pg1传给了Pg2。我在下面的代码中添加了注释,以便逐步解释发生了什么。我的代码一直工作到最后一个函数,它应该在girls.xml中搜索狗的名字并将相关节点加载到Pg2上的配置文件中。

如果您有任何改进我的代码的建议,我将不胜感激。善待我自学: - )

这是 litters.xml 文件格式化的方式

  <?xml version="1.0" encoding="utf-8"?>
 <litter>
    <litter_id>201704</litter_id>
    <dogs_mom>June Bug</dogs_mom>
    <dogs_dad>Oscar</dogs_dad>
  </litter>

这就是 girls.xml 文件格式化的方式

       <?xml version="1.0" encoding="utf-8"?>
<breeder>
  <girls>
    <dog>
        <dogs_breeding_name>Adora</dogs_breeding_name>
        <profile>
            <![CDATA[<strong>Adora</strong> is a second generation puppy. Adora lives in a guardian home. ]]>
        </profile>          
       </dog>
    </girls>
</breeder>

pg1.html 上点击了Dog's Mom的名字(litters.xml)并传递给pg2.html

$(".thumb-but-link").click(function (e) {
 e.preventDefault();
var i = $(e.currentTarget).text();
window.location.href = '../xml/pg2.html' + '#' + i;
});

pg2.html 文件加载 girls.xml 文件

$.ajax({
  type: "GET",
  url: "../xml/girls.xml",
  dataType: "xml",
  success: findDog
   });

findDog函数加载女孩节点

       function findDog(xml){
         $(xml).find('girls').each(function () {
         girlsXml = $(this);

然后它使用if语句来检查是否从 pg1.html 传递了新的狗名称,如果没有传递名称,它会加载 girls.xml 将文件存入页面上的狗配置文件。

        if(window.location.hash.substring(1)) {
                    var i = location.hash.match(/^#?(.*)$/)[1];
                    var x = girlsXml.find('dog:contains("i")');
                    loadClickedContent(x)
                 }else{
                    var x = girlsXml.find('dog').first();
                    loadClickedContent(x)
            }
          }); 
       }


    function loadClickedContent(x) {
        girlsXml.find(x).each(function () {
            var x = $(this);
            var dogsBreedingName = x.   find('dogs_breeding_name').text();
            var profileName = x.find('profile').text();

            $("#breedingNameHolder").empty();
            $("#profileHolder").empty();

            $("#breedingNameHolder").append(dogsBreedingName);
            $("#profileHolder").append(profileName);
        }); 
    }   
 </script>

因此...

Pg1.html thumb-but-link“正在将狗的名字从litters.xml传递到 Pg2.html

Pg2.html girls.xml正确加载

Pg2.xml 能够将来自girls.xml的默认狗加载到个人资料中

Pg2.html if语句能够从Pg1.html中读取狗的名字

Pg2.html else语句能够读取girls.xml中的默认狗。然后它调用loadClickedContent函数并将默认狗加载到配置文件中。

我认为我的问题可能是当我调用loadClickedContent函数时,从if语句中,它没有加载新内容。它可能不是正确的格式吗?我已经尝试将.html()和.text()放在最后,但它们没有用。

1 个答案:

答案 0 :(得分:0)

当你正在寻找狗的名字时,你实际上没有把它放在搜索中,只需要输入字母make,尝试将变量class Employee : IComparable<Employee> { string name; string address; public int CompareTo(Employee obj) { Employee person = obj; } } 连接到的下面的代码找到所需狗的字符串。

i