2015-09-14 56 views
2

美好的一天。我有一個代碼。據我的理解,clicked2應該得到id爲「Third」,因爲它正在尋找孩子。但不知何故,它始終得到ID「第一」。我如何獲得「第三」?想要得到孩子,但不知何故得到父母的ID

<!DOCTYPE html> 
<html> 
<body> 

    <div class="menu" id="First"> 
     <button id="Second">eee</button> 
     <button id="Third">yyy</button> 
    </div> 
    <div class="holder"></div> 
    <script type="text/javascript" src="jquery.js"></script> 
    <script type="text/javascript"> 

      $(document).on('click', '.menu', function(e) { 
       var clicked = e.target.id || this.id; 
       var clicked2 = e.target.children.id || this.id; 
       var y = clicked2.replace(/\D/g, ''); 
       var x = clicked.replace(/\D/g, ''); 
       var w = 0; 

       $('.holder') .append('<BR>'+clicked+'<BR>'+clicked2); 

       }); 

    </script> 

</body> 
</html> 
+2

第一個問題:'e.target.children .id'將始終未定義,因爲_element_.children是一個HTMLCollection,所以沒有ID - 所以clicked2只能是'this.id' –

回答

1

添加此var clicked2 = $(this).children("button").next().attr("id") 它將返回第二個按鈕的ID。

試試這個

$(document).on('click', '.menu', function(e) { 
var clicked = e.target.id || this.id; 
var clicked2 = $(this).children("button").next().attr("id") || this.id; 


var y = clicked2.replace(/\D/g, ''); 
var x = clicked.replace(/\D/g, ''); 
var w = 0; 

$('.holder') .append('<BR>'+clicked+'<BR>'+clicked2); 

    }); 

Demo Here

0

children()返回所有的兒童,所以你需要ADRESS正確的:

var clicked2 = $(this).children().next().attr("id");