$(document).ready(function(){
$(".btn").click(function(){
var level= $(this).attr('id');
alert(level);
var ss= $(level).next().attr('id');
alert(ss);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img class="btn" id="1"src="img_pulpitrock.jpg" alt="Pulpit Rock" width="284" height="213"><br>
<img class="btn" id="2"src="img_pulpitrock.jpg" alt="Pulpit Rock" width="284" height="213"><br>
我总是想获得下一个元素 id。为什么没有定义?水平是动态的。
var level //global
$(".button").click(function () {
level = $(this).attr("id");
alert(level);//working
});
var ss= $(level).next().attr('id');
alert(ss);//undefined
您必须了解只有当用户单击 .button 时才定义您的级别变量。
因此,当您定义 ss 时,级别尚未定义。请记住,JavaScript 主要是异步的。
所以你必须这样做:
var level //global
$(".button").click(function () {
level = $(this).attr("id");
alert(level);//working
var ss= $('#' + level).next().attr('id');
alert(ss);//defined
});
在添加 HTML 时没有看到您的编辑。
已修复我的代码提案。但我真的建议你不要使用数字作为 ID。在这里,如果您单击第二个也是最后一个 .btn,则没有下一个。所以它会崩溃。并且不要使用“ss”作为变量名。因为它并不意味着什么。借助 IDE 中的实际代码缩小和代码自动完成功能,不再需要小变量名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句