我想在点击任何球队时选择 parent 的 parent ID,所以基本上如果有人点击英超球队,我希望将 ID 2 分配给变量 league_id。
我已经尝试过的:
最近
$('ul.subbar li a').on('click', function(e) {
e.preventDefault();
var team_id = $(this).attr("id");
var league_id = $(this).closest('li').attr('id');
父级父级
$('ul.subbar li a').on('click', function(e) {
e.preventDefault();
var team_id = $(this).attr("id");
var league_id = $(this).parent().parent().attr('id');
parent 先行
$('ul.subbar li a').on('click', function(e) {
e.preventDefault();
var team_id = $(this).attr("id");
var league_id = $(this).parents('ul:first').attr('id');
这是我的 HTML 结构:
<li class="countries" id="2"><img src="{% static "images/england.png" %}" alt="england">Premier League
<ul class="subbar">
<li><a class="team" id="12">FC Liverpool</a></li>
<li><a class="team" id="13">Manchester City</a></li>
<li><a class="team" id="17">Tottenham Hotspur</a></li>
<li><a class="team" id="14">Manchester United</a></li>
<li><a class="team" id="11">Leicester City</a></li>
<li><a class="team" id="6">FC Chelsea</a></li>
所以基本上我需要向上跳两级。
控制台总是记录我 undefined
最佳答案
你可以这样做:
var league_id = $(this).closest('li.countries').attr('id');
演示
$('ul.subbar li a').on('click', function(e) {
e.preventDefault();
var team_id = $(this).attr("id");
var league_id = $(this).closest('li.countries').attr('id');
console.log("team_id",team_id)
console.log("league_id",league_id)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li class="countries" id="2"><img src="{% static " images/england.png " %}" alt="england">Premier League
<ul class="subbar">
<li><a class="team" id="12">FC Liverpool</a></li>
<li><a class="team" id="13">Manchester City</a></li>
<li><a class="team" id="17">Tottenham Hotspur</a></li>
<li><a class="team" id="14">Manchester United</a></li>
<li><a class="team" id="11">Leicester City</a></li>
<li><a class="team" id="6">FC Chelsea</a></li>
</ul>
</li>
</ul>
关于javascript - 如何使用 jQuery 选择父级的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58236425/