簡體   English   中英

獲取元素的ID

[英]Get id of element

我想獲取活動標簽的ID。 我的代碼無法正常工作。 救命

 //if it's the second tab, refresh it var liID = $('#menu').hasClass('active').attr(id); console.log(liID); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="nav nav-tabs" role="tablist" id="menu"> <li role="presentation" class="active"> <a href="#container" data-toggle="tab" aria-controls="step1" role="tab" title="Container"> <span class="round-tab"> <i class="fa fa-archive"></i> </span> </a> </li> <li role="presentation" class="disabled"> <a href="#parameters" data-toggle="tab" aria-controls="step2" role="tab" title="Parameters"> <span class="round-tab"> <i class="glyphicon glyphicon-pencil"></i> </span> </a> </li> <li role="presentation" class="disabled"> <a href="#results" data-toggle="tab" aria-controls="step3" role="tab" title="Results"> <span class="round-tab"> <i class="glyphicon glyphicon-ok"></i> </span> </a> </li> </ul> 

您沒有選擇活動的li,並且缺少引號。 您正在嘗試查看“菜單”元素是否處於活動狀態,並讀取其值。

$('#menu').find('.active').attr('id')

要么

$('#menu .active').attr('id')

id必須用引號引起來,否則它被認為是一個變量,您沒有聲明。

接下來,您嘗試獲取ID是不正確的,因為.hasClass()返回一個布爾值,而不是具有該類的元素,因此,在返回值上調用.attr()將會失敗。

最后,您的active元素甚至都沒有id

這是一個更正的版本:

 //if it's the second tab, refresh it if($('#menu li').hasClass('active')){ var liID = $('#menu li.active').attr("id"); console.log(liID); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="nav nav-tabs" role="tablist" id="menu"> <li role="presentation" class="active" id="HELLO"> <a href="#container" data-toggle="tab" aria-controls="step1" role="tab" title="Container"> <span class="round-tab"><i class="fa fa-archive"></i></span> </a> </li> <li role="presentation" class="disabled"> <a href="#parameters" data-toggle="tab" aria-controls="step2" role="tab" title="Parameters"> <span class="round-tab"><i class="glyphicon glyphicon-pencil"></i></span> </a> </li> <li role="presentation" class="disabled"> <a href="#results" data-toggle="tab" aria-controls="step3" role="tab" title="Results"> <span class="round-tab"><i class="glyphicon glyphicon-ok"></i></span> </a> </li> </ul> 

但實際上,這應該更簡單:

 // Just query for the active element and then use it: console.log($('#menu li.active').attr("id")); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="nav nav-tabs" role="tablist" id="menu"> <li role="presentation" class="active" id="HELLO"> <a href="#container" data-toggle="tab" aria-controls="step1" role="tab" title="Container"> <span class="round-tab"><i class="fa fa-archive"></i></span> </a> </li> <li role="presentation" class="disabled"> <a href="#parameters" data-toggle="tab" aria-controls="step2" role="tab" title="Parameters"> <span class="round-tab"><i class="glyphicon glyphicon-pencil"></i></span> </a> </li> <li role="presentation" class="disabled"> <a href="#results" data-toggle="tab" aria-controls="step3" role="tab" title="Results"> <span class="round-tab"><i class="glyphicon glyphicon-ok"></i></span> </a> </li> </ul> 

用ID包裹ID。 hasClass返回一個布爾值。 所以

var liID = $('#menu li.active').attr('id');

會將liID設置為具有父“菜單”和活動類(如果有)的li元素的id。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM