我试图通过jQuery获取最后一个子元素的.attr("msg_g")
<div id="append">
<div class="h" msg_g="1">A</div>
<div class="y" msg_g="2">B</div>
<div class="h" msg_g="3">C</div>
</div>
我非常确定下面的脚本必须有效,但是给我回复未定义
var msg_g = $( "#append div:last-child" ).attr( "msg_g" );
console.log(msg_g);
我使用下面的脚本来检查last-child&#39; hasClass&#39;并且工作完美,为什么不在.attr()
上工作 .hasClass()
if($( "#append div:last-child" ).hasClass( "y" )){
var last_msg_class="by_you";
}else if($( "#append div:last-child" ).hasClass( "h" )){
var last_msg_class="by_friend";
}
答案 0 :(得分:1)
不要添加msg_g
属性,请尝试使用data-*
属性。
将您的html修改为: -
<div id="append">
<div class="h" data-msg_g="1">A</div>
<div class="y" data-msg_g="2">B</div>
<div class="h" data-msg_g="3">C</div>
</div>
在Jquery中尝试: -
var msg_g = $( "#append > div:last" ).data( "msg_g" );
并确保您的Jquery代码位于document.ready
块内。
答案 1 :(得分:1)
确保您的代码在dom准备就绪后运行。如果您的脚本在呈现元素之前执行,则会出现问题。
$(document).ready(function() {
$("#append > div:last").attr("msg_g");
});
答案 2 :(得分:0)
我已经测试了它,它的工作原理。确保在DOM元素准备就绪时执行代码。
$( document ).ready(function() {
var msg_g = $( "#append div:last-child" ).attr( "msg_g" );
alert(msg_g);
});