javascript - 使用 Javascript 在 Ajax 响应中查找元素

标签 javascript php jquery ajax

我有一个包含一些输入、选择和其他内容的表单,我编写了一个“搜索栏”,它将发送 Ajax 请求结果以查找要附加到表单的联系人:

index.php - 表单

<p><label for="q">Rechercher un contact</label>
<input type="text" class="form-control" name="q" id="q" />
</p>
<div id="results">Veuillez saisir un élément de recherche</div>

index.php - Ajax

$(document).ready( function() {
    $('#q').keyup( function(){
        $field = $(this);
        $('#results').html('Veuillez saisir un élément de recherche');
        $('#ajax-loader').remove();
        if($field.val().length > 2 ) {
            $.ajax({
                type : 'GET',
                url : 'contact.search.php',
                data : 'q='+encodeURIComponent($(this).val()),
                beforeSend : function() {
                    $field.after('<img src="assets/img/ajax-loader.gif" alt="loader" id="ajax-loader" />');
                },
                success : function(data) {
                    $('#ajax-loader').remove();
                    $('#results').html(data);
                    console.log(data);
                }
            });
        }       
    });
});

文件 contact.search.php 正在处理请求,并将回显包含以下元素的表格: 表:<table id = contactResult> 结果TR:<tr class = select>

contact.search.php

while ($ligne = sqlsrv_fetch_object($query)) {
    $body .= "
            <tr class='select'>
                <td class='item-nom'>".$ligne->nom."</td>
                <td class='item-prenom'>".$ligne->prenom."</td>
                <td class='item-tel'>".$ligne->tel."</td>
                <td class='item-division'>".$ligne->division."</td>
                <td class='item-direction'>".$ligne->direction."</td>
            </tr>";
}

然后用户必须单击其中一个 TR 来选择所需的联系人,我需要将此选择显示到将用于保存表单的其他输入中。但是当我尝试用这个脚本捕获这些数据时:

Javascript

<script type="text/javascript">
    $("#contactResult tr").click(function(){ 
        var nom=$( "td.item-nom" );
        var prenom=$( "td.item-prenom" );
        var tel=$( "td.item-tel" );
        var division=$( "td.item-division" );
        var direction=$( "td.item-direction" );
        console.log(nom + " / " + prenom + " / " + tel + " / " + division + " / " + direction + " / ");
        });
</script>

控制台显示“[object Object]/[object Object]/[object Object]/[object Object]/[object Object]/”

我尝试遵循以下提示:

http://jsfiddle.net/65JPw/2/

但它仅在数据位于初始页面时有效,而在通过 Ajax 查询加载内容时无效。

有人可以帮助我让它工作吗?我想通过单击 tr 将每个 td 的 Ajax 结果显示数据放入控制台。感谢您的帮助。

最佳答案

除非你使用这个,否则你只是引用所有指定的类。

 $(document).on("click","#contactResult tr",function(){ 
        var nom=$(this).find( "td.item-nom" ).html();
        var prenom=$(this).find( "td.item-prenom" ).html();
        var tel=$(this).find( "td.item-tel" ).html();
        v.ar division=$(this).find( "td.item-division" ).html();
        var direction=$(this).find( "td.item-direction" ).html();
        console.log(nom + " / " + prenom + " / " + tel + " / " + division + " / " + direction + " / ");
        });

关于javascript - 使用 Javascript 在 Ajax 响应中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36845008/

相关文章:

javascript - 为什么 JavaScript touchstart 和 mousedown 事件同时触发?

javascript - 如何用 JavaScript 的内置函数替换此 JQuery Ajax 调用?

javascript - Vue 路由器和 VueJS react 性

javascript - 在窗口加载时显示加载图像,直到 DomContentLoaded

php - 如何发送ANY操作数mysql

javascript - 页面加载后 Bootstrap 总是改变元素在手机上的绝对位置

javascript - DOM 刷新后使用 jQuery 测量宽度()

javascript - Javascript 如何处理连字符?

javascript - Angular ng-repeat 需要更改从 json 获取的数据

php - 使用php将数字转换为字母