我正在使用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加载。
非常感谢
答案 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
});