我在div中有3个span元素。整个div将在循环内动态创建。 这是代码
$.each(data.Payload, function(index, value){
stmt+='<li class="list-group-item">'+
'<div class="col-xs-12 col-sm-9">'+
'<div class="refugeeInfo">'+
'<span class="name" style="cursor: pointer">'+ value.firstName +' '+value.lastName+'</span><br/>'+
'<label><strong>unID: </strong><span class="unid" style="cursor: pointer;"> '+ value.unID +'</span></label>'+
'         '+
'<label><strong>rmsID: </strong><span class="rmsid" style="cursor: pointer">'+ value.rmsID +'</span></label><br/>'+
'</div>'+
'</li>'
});
现在当我点击(&#34; .refugeeInfo&#34;)div时,我需要显示name,unID和rmsID的值。我试过wjat
$('.refugeeInfo').click(function(){
var name=$(this).children('.name').text();
var unID=$(this).children('.unid').text();
var rmsID=$(this).children('.rmsid').text();
console.log("name: "+name);
console.log("unID: "+unID);
console.log("rmsID: "+rmsID);
})
但结果仅显示名称。 unID和rmsID是空的。
答案 0 :(得分:2)
使用find()
代替children()
问题是您的.unid
和.rmsid
嵌套在label
代码中..选择器children()
有效仅适用于父母的直系后代。这两个元素不是直接的后代。
<强> From the document 强>
.children()方法与.find()的不同之处在于.children()只沿DOM树向下移动一个级别,而.find()可以遍历多个级别以选择后代元素(孙子等)同样。
$('.refugeeInfo').click(function(){
var name = $(this).children('.name').text();
var unID = $(this).find('.unid').text();
var rmsID = $(this).find('.rmsid').text();
console.log("name: " + name);
console.log("unID: " + unID);
console.log("rmsID: " + rmsID);
});
答案 1 :(得分:0)
使用find()
$('.refugeeInfo').click(function(){
var name=$(this).children('.name').text();
var unID=$(this).find('.unid').text();
var rmsID=$(this).find('.rmsid').text();
console.log("name: "+name);
console.log("unID: "+unID);
console.log("rmsID: "+rmsID);
})