我有一个包含一些输入、选择和其他内容的表单,我编写了一个“搜索栏”,它将发送 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]/”
我尝试遵循以下提示:
但它仅在数据位于初始页面时有效,而在通过 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/