2016-04-14 15 views
3

In einer MVC-Anwendung habe ich eine Liste:Get-Attributwert von einem ausgewählten Elemente in einer Liste

<ul> 
<li class="list-item" data-action="open" data-id="1"><form>...A..<form/></li> 
<li class="list-item" data-action="open" data-id="2"><form>...B..<form/></li> 
<li class="list-item" data-action="open" data-id="3"><form>...C..<form/></li> 
</ul> 

Wie kann ich Daten-ID-Eigenschaft von dem ausgewählt li?

Ich habe diesen Code in JQuery versucht:

this.$list = this.find("ul").first(); 
    this.$list.on("click", "[data-action=\"open\"]", function (e) { 

     var x = e.currentTarget.parentElement;//it brings me all the li elements , not just the one that was selected 
     var elem=x.data('id'); 
    }); 

Antwort

3

Try this: Sie haben nach li s unter ul Click-Ereignishandler registriert. So habe gerade gelesen $(this).data('id')data-id des angeklickten li zu bekommen, anstatt es von seinem übergeordneten Element zu lesen heißt e.currentTarget.parentElement;

Hinweis: - Ich this in meinem Code entfernt haben, so wie ich Bezug haben nicht darauf.

var $list = $(document).find("ul").first(); 
 
$list.on("click", "li[data-action=\"open\"]", function (e) { 
 
    var elemId =$(this).data('id'); 
 
    alert(elemId); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
<li class="list-item" data-action="open" data-id="1"><form>...A..<form/></li> 
 
<li class="list-item" data-action="open" data-id="2"><form>...B..<form/></li> 
 
<li class="list-item" data-action="open" data-id="3"><form>...C..<form/></li> 
 
</ul>

Verwandte Themen