我有几个警告的div。用户解散它们并在最后一个(这是DOM中的第一个)之后我需要触发一些jquery魔法。
这是一些简化的HTML:
<body>
<div class="">Bla bla bla</div>
<div class="alert">A</div>
<div class="alert">B</div>
</body>
这是我正在尝试用jquery ...
$(".alert").click( function() {
if ( $(this).is(".alert:first") ) {
//do stuff
}
});
它不起作用。条件永远不会返回true。我可以使用.index()
的唯一方法是使用.index()
,但这很糟糕,因为如果标记的顺序发生变化,它将破坏脚本。
我做错了什么?
编辑:解决方案使用{{1}}但是我没有意识到这种方式是可能的。如果以这种方式使用, 相对于匹配的选择。谢谢!
答案 0 :(得分:6)
您可以编码:
$(".alert").click(function() {
if ($(".alert").index(this) == 0) {
//
}
});
答案 1 :(得分:2)
请改为尝试:
if ($(this).hasClass("alert") && $(this).is(":first")) {
//do stuff
}
或者:
$(".alert").click( function() {
if ($(".alert").index(this) == 0) {
//do stuff
}
});
希望这会有所帮助!!
答案 2 :(得分:1)
试试这个jsfiddle
$(".alert").click( function() {
if (this == $(".alert:first")[0] ) {
//do stuff
alert(this);
}
});
答案 3 :(得分:0)
你可以试试这个。
$('.alert').click( function() {
if ( ($(this)[0] === $('.alert').first()[0])) {
alert('first');
}
});