2016-06-17 9 views
0

ich diese Art von Verbindung haben:Holen Sie sich das Datenelement Wert nach in jQuery geklickt

<a href="#" data-module="planning">Planning</a> 

Wenn ich den Klick auf diese Art der Verknüpfung erfassen wollen, die ich benutze:

$("a[data-module ='*']").click(function() { 
    alert("clicked"); 
}); 

Aber Wie kann ich den planning Wert erhalten?

Danke.

Antwort

0

Ihr Selektor ist falsch. a[data-module ='*'] wählt a Tags mit data-module Attributwert *. Sie sollten den Selektor a[data-module] verwenden, der a Tags mit dem Attribut data-module auswählt.

$('a[data-module]').click(function(event) { 
 
\t event.preventDefault(); 
 
\t var module = $(this).attr('data-module'); 
 
\t alert(module); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<aside id="app-aside" class="app-aside top light"> 
 
    <div class="container"> 
 
     <div class="aside-menu-wrapper"> 
 
      <div id="aside-top-menu-toggle" class="visible-xs-inline-block"> 
 
       <button data-toggle="class" data-target="#aside-top-menu" data-class="open" self-toggle="is-active" class="hamburger hamburger--spin js-hamburger" type="button"> 
 
        <span class="hamburger-box"> 
 
         <span class="hamburger-inner"></span> 
 
        </span> 
 
       </button> 
 
      </div> 
 
      <ul class="sf-menu aside-menu aside-top-menu" id="aside-top-menu"> 
 
       <li> 
 
        <a href="#" class="menu-link" data-module="planning"> 
 
         <span class="menu-text">Planning</span> 
 
        </a> 
 
       </li> 
 
       <li> 
 
        <a href="#" class="menu-link"> 
 
         <span class="menu-text">Rooms <i class="zmdi zmdi-caret-down"></i></span> 
 
        </a> 
 
        <ul> 
 
         <li><a href="#" data-module="rooms-list">List rooms</a></li> 
 
         <li><a href="#" data-module="rooms-create">Create a room</a></li> 
 
        </ul> 
 
       </li> 
 
      </ul> 
 
     </div> 
 
    </div> 
 
</aside>

0

Verwendung jquery attr API:

Find all <a> tags whose data-module attribute has a value of *

Also in Ihrem Beispiel gibt:

$("a[data-module ='*']").click(function() { 
    var dataModule = $(this).attr('data-module'); 
}); 

EDIT

Aktuell Ihre jquery Wähler falsch ist, wird es als interpretiert ist kein Link, der dieser Bedingung entspricht.

Beispiel: Ich bekomme alle Tags mit Datenmodul, das mit rooms beginnt. Dann wäre mein gültiger Selektor $('a[data-module^="rooms"]')

+0

Hallo, könnten Sie sagte mir bitte, warum es hier nicht funktioniert bitte? https://jsfiddle.net/kk6swhaa/ – PacPac

+0

@PacPac https://jsfiddle.net/kk6swhaa/4/ Ihr Selektor ist falsch, was versuchen Sie für diesen zu erreichen? alle href mit Datenmodul *? – Sherlock

+0

@PacPac das ist der falsche Teil 'a [Daten-Modul = '*']' sag mir, was willst du hier erreichen :), denn im Moment wird es interpretiert als "finde alle Tags mit Daten-Modul, deren Wert ist gleich *. Und der Grund, warum es nicht funktioniert, weil es kein Tag mit Datenmodulwert von '*' gibt – Sherlock

Verwandte Themen