在JQ中获取节点引用

问题描述

| 嗨,我有以下脚本来查找xml文件并生成有序列表
$(document).ready(function() {
    $.ajax({
        type: \"GET\",url: \"search_action.php\" + string,dataType: \"xml\",success: disxml
    });
})

} // function 

function disxml(data) {

    $(data).find(\'results\').find(\'client\').each(function(row) {
        name = $(this).find(\'name\').text();
        var add1 = $(this).find(\'address1\').text();
        var add2 = $(this).find(\'address1\').text();
        var pcode = $(this).find(\'postcode\').text();
        var num1 = $(this).find(\'number1\').text();
        var num2 = $(this).find(\'number2\').text();
        var contact = $(this).find(\'contact\').text();
        var email = $(this).find(\'email\').text();


        display += \"<a onclick=\'populate();\'> <b>\" + name + \"</b> - \" + add1 + \"<br></a>\";


    })

    divbox.html(display); // draw contents 
}

function populate() {


}
这是它所引用的xml文件
<results>
    <client>
    <name>Ascot Racecourse</name>
    <address1>Berkshire</address1>
    <address2/>
    <postcode>SL5 7JX</postcode>
    <number1/>
    <number2/>
    <contact>Alastair Warwick</contact>
    <email>As per course</email>
    </client>
    <client>
    <name>Aston Villa Football Club</name>
    <address1>Villa Park</address1>
    <address2>Birmingham</address2>
    <postcode>B6 6HE</postcode>
    <number1/>
    <number2/>
    <contact>Andrew Evans </contact>
    <email>Info@avfc.co.uk</email>
    </client>
    <client>
    <name>Asda 1 Year Celebration</name>
    <address1>Park In Ipswich</address1>
    <address2>Ipswich</address2>
    <postcode>IP</postcode>
    <number1/>
    <number2/>
    <contact/>
    <email>Jonathan Stephenson</email>
    </client>
</results>
一切正常,当我有列表时,每行都有一个链接,当单击该链接时,就会调用函数“ populate” 当脚本到达填充函数时,我真的很困惑,因为我如何引用调用该函数的特定结果行,如何找到它? 感谢您的帮助,我希望这是有道理的!     

解决方法

应该这样做:
function disxml(data) {

    $(data).find(\'results\').find(\'client\').each(function(row) {

        var clientItem = this;

        var name = $(clientItem).find(\'name\').text();
        var add1 = $(clientItem).find(\'address1\').text();
        var add2 = $(clientItem).find(\'address1\').text();
        var pcode = $(clientItem).find(\'postcode\').text();
        var num1 = $(clientItem).find(\'number1\').text();
        var num2 = $(clientItem).find(\'number2\').text();
        var contact = $(clientItem).find(\'contact\').text();
        var email = $(clientItem).find(\'email\').text();

        var link = $(\"<a href=\'#\'><b>\" + name + \"</b> - \" + add1 + \"<br/></a>\")

        link.click(function(evt){
            evt.preventDefault();
            populate(clientItem);
        });

        divbox.append(link);
    });
}

function populate(item) {
    alert(\"Populating \" + $(item).find(\"name\").text());
}
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...