获取具有特定类的所有子元素的id

时间:2015-08-28 12:51:40

标签: javascript jquery

我需要获得&#39;&#39;&#39;来自<ul>的课程。如何使用jquery / javascript获取它?可以通过遍历所有元素来完成吗?提前谢谢。

<ul id="ulList">
  <li id="car" class="vehicle">
  <li id="bus" class="vehicle">
  <li id="cat" class="animal">
  <li id="dog" class="animal">
  <li id="bike" class="vehicle">
  <li id="monkey" class="animal">
</ul>

4 个答案:

答案 0 :(得分:12)

使用map()

另外,请在代码段(class="")中更正HTML标记。

最后,如果你需要一个真正的JavaScript数组(而不是jQuery的字符串集合),请使用.get() - jQuery的集合[sets]通常包含DOM元素,但可以包含任何东西)。

var ids = $('#ulList .vehicle').map(function(){
  return $(this).attr('id');
  }).get();

console.log(ids);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<ul id="ulList">
  <li id="car" class="vehicle"></li>
  <li id="bus" class="vehicle"></li>
  <li id="cat" class="animal"></li>
  <li id="dog" class="animal"></li>
  <li id="bike" class="vehicle"></li>
  <li id="monkey" class="animal"></li>
</ul>

答案 1 :(得分:2)

由于jQuery已经有其他答案,这里有一个使用vanila Javascript的替代方案:

class func rematch(match:GKTurnBasedMatch!){
    GCHelper.sharedInstance.rematch(match)
}

func rematch(match:GKTurnBasedMatch!){
    match.rematchWithCompletionHandler({ (mMatch:GKTurnBasedMatch!, error:NSError!) -> Void in
        if(error != nil){
            println("\(error.description)")
        } else{
            println("rematch")
            for var i = 0; i < mMatch.participants.count; i++ {
                let participants = mMatch.participants as NSArray
                let part = participants.objectAtIndex(i) as! GKTurnBasedParticipant
                println("part \(i) \(part.description)")
                if let playerID = part.playerID {
                    if(part.playerID != GKLocalPlayer.localPlayer().playerID){
                        self.opponentName = part.player.displayName
                    }
                } else{
                    self.opponentName = "Opponent"
                }

                //            println("participant name is \(part.playerID.)")
            }
            println("participant name is \(self.opponentName)")

            self.delegate?.enterRematch(match,opponentName: self.opponentName)
        }
    })
}
GCHelper.rematch(self.currentTurnBasedMatch)

答案 2 :(得分:1)

vehicleIds是一个数组,push所有类别为vehicle的元素的数据。

var vehicleIds = [];
$(".vehicle").each(function(){
   vehicleIds.push($(this).attr("id"));
});
alert(vehicleIds);

然后我alert最后的数组。

答案 3 :(得分:0)

$('div','#main').each(function(){
  array.push($(this).attr('id')); 
});

这里div是其子元素必须以数组形式推送的元素。 '#main'是该div的id。

希望这会对你有所帮助。