jQuery加载片段有几个目的一次

时间:2011-10-01 20:16:10

标签: ajax jquery load

我正在使用load和fragment加载几个选择列表的选项。

这就是我所拥有的:

$(document).ready(function(){
        $("#select1").load("ts.xml #select1", 
                 function (responseText, textStatus, XMLHttpRequest) {
                   if (textStatus == "success") {
                        alert("Loaded select 1");

                   }  

        $("#select2").load("ts.xml #select2", 
                 function (responseText, textStatus, XMLHttpRequest) {
                   if (textStatus == "success") {
                        alert("Loaded select 2");

                   }     
    });

我的HTML看起来像这样:

<li id="select1" class="left"></li>
<li id="select2" class="left"></li>

其中 ts.xml 如下所示:

<select id="select1">
<option>Lorem</option>
<option>Ipsum</option>
<option>Lorem Ipsum</option>
</select>
<select id="select2">
<option>Lorem</option>
<option>Ipsum</option>
<option>Lorem Ipsum</option>
</select>

如何加载ts.xml一次并继续检索片段?请注意,每次检索片段时,我都要提示成功而不是ts.xml加载。

非常感谢

2 个答案:

答案 0 :(得分:1)

加载一次,缓存,然后使用缓存版本:

$(document).ready(function(){
    var response;
    $("#select1").load("ts.xml #select1", 
        function (responseText, textStatus, XMLHttpRequest) {
           if (textStatus == "success") {
                response = responseText; // this will be your xml response
                // now you can use 'response' anywhere inside the doc.ready function
           }
        });    
});

答案 1 :(得分:0)

我想我可能会回到基本的$ .ajax函数并执行类似的操作。

var xmlData;

function getXML() {
  $.ajax({
    type: "GET",
    url: "ts.xml",
    dataType: "xml",
    error: function() {
    $("#mydiv").append("<p>File Not Found!</p><br />");
    },
    success: function(xml){
        xmlData = $(xml);
    }
});

现在你可以在任何地方搜索数据,至少我是这么认为的,没有经过测试但却看不出原因?

var Searchvalue = "Lorem";

xmlData.find("select1").find("option:contains('" + Searchvalue + "')").each(function(){
        // do something
        });