我有以下脚本来查找XML文件并生成有序列表。结果显示在div框中,用户可以选择列表中的每个项目。单击列表中的项目时,将调用“选中()”功能。
一切正常,我可以列出数据,用户可以选择。问题是我想用XML结果填充表单并需要引用所选项目,我认为我可以使用this
但是我收到错误。有人可以提供一些建议吗?
我省略了一些显示div框等的代码。
function searchaddress() {
searchstring = $('#nam').val();
chr = searchstring.length;
$(document).ready(function() {
$.ajax({ type: "GET",
url: "../241/NEWsearch_action.php?ss=" + searchstring ,
dataType: "xml",
success: searchxml });
});
}
// data returned from AJAX.php
function searchxml(data) {
var display = "";
var msg = "";
var currentWidth = 25;
$(data).find('NameSearch').each(function() {
numres = $(data).find('NameSearch').length;
coursename = $(this).find('sitelist').text();
address1 = $(this).find('address1').text();
address2 = $(this).find('address2').text();
postcode = $(this).find('postcode').text();
number1 = $(this).find('number1').text();
string = "<b> <a onclick='selected(" + **this** + ")' > " + coursename < /br> " ;
msg += string;
}); // find loop
$('#UniDivBody').html(msg);
}
function selected(e) {
coursename = $(e).find('sitelist').text();
// REFERENCE THE SELECTED DATA HERE???
}
答案 0 :(得分:0)
首先放置这一行
numres = $(data).find('NameSearch').length ;
在.each
调用之外,因为每次numres
函数循环遍历您的NameSearch时,您都会设置.each
值。
其次
为什么不使用委托来委派您的点击事件。
$('#UniDivBody').delegate('a','click',function(){
//declare the clicked <a>
var $element = $(this),
l_element = this;
//this is going to pass through the <a> to the selected function
selected(this);
})
你有一个实例吗?