2016-04-02 17 views
-1

私はこの比較的単純なドロップダウンメニューを持っていて、それを取得しません。 最後のメニューがすべて最後のメニューの下に表示されるのはなぜですか? それをクリックすると、最初に名前が表示され、すぐに「未定義」という別のアラートが表示されます。 ここにドロップダウンがあり、ホバー上にサブメニューが表示されます。ドロップダウンメニューの基礎

<!DOCTYPE html> 
<html> 
<head> 
<style> 
.dropbtn {background-color: #4CAF50; color: white; cursor: pointer;} 
.dropdown { position: relative; display: inline-block;} 
.dropdown-content { display: none; position: absolute;} 
.dropdown-content a { display: block;} 
.dropdown-content a:hover {background-color: #f1f1f1} 
.dropdown:hover .dropdown-content { display: block;} 
.dropdown:hover .dropbtn { background-color: #3e8e41;} 
</style> 
</head> 
<body> 

<div class="dropdown"> 
<input type="button" id="dropbtnID" value="Select" class="dropbtn"> 
    <div class="dropdown-content">  
    <input type="text" value="a" id="a" class="dropdown-content"> 
    <input type="text" value="b" id="a" class="dropdown-content"> 
    <p id="c" name="c" class="dropdown-content">cc</p> 
    <p id="d" name="d" class="dropdown-content">dd</p> 
</div></div> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $(".dropdown-content").click(function(){ 
     var name = $(this).attr("name"); 
     alert(name);  
    }); 
}); 
</script> 
</body> 
</html> 
+0

申し訳ありませんが、それはちょうどすべて間違っています... CSSとHTMLは正しくない、クラスはひどく使用されています(そして相対的なCSS) – Yuri

+0

ここではブートストラップを使用していますか?コードには実際のHTMLドロップダウンはありません。 –

+1

ドロップダウンについての簡単なアイデアを確認してください。 – Yuri

答えて

0

コードには多くの問題があります。まず、あなたはAとBの両方に同じID(「A」)があります。

<input type="text" value="b" id="b" class="dropdown-content"> 

を、あなたは未定義のアラートをgetingされている理由は、ドロップダウン内の要素と同じクラスを持つ親のdivを持っているということです - したがって、最初のアラートは要素(たとえばname="d")で、2番目のアラートは名前のない親div(したがって"undefined")です。

レイアウトの問題があります。すべてのことを - あなたはコードを遡って、各行を修正する必要があります。

+0

がクラスを修正しました。魅力のように働く – manfred343