2016-03-22 5 views
0

私はこのHTMLを持っている:アンカータグからdata-iconを取得する方法は?

<div id="measureControl" data-role="controlgroup" data-type="vertical"> 
    <a href="#" data-role="button" data-icon="home" id="measureButton" data-iconpos="notext"></a> 
</div> 

アンカーは、私がデータ-icon属性を取得するには、別のデータ・アイコン(例えば)を設定する必要がクリックされたとき。

私はこれ試してみてください。

$("#measureButton").click(function() { 
     var el = $(".ui-icon", this); 
     var output = document.getElementById('output'); 
     if (el.hasClass("home")) { 
      el.removeClass("home"); 
      el.addClass("eye"); 
      output.style.display = "block"; 
     } else { 
      measureControls.line.deactivate(); 
      el.removeClass("eye"); 
      el.addClass("home"); 
      output.style.display = "none"; 
     } 
    }); 

をしかし、それは動作しません。

jQueryまたはJavaScriptを使用してどのように実装できますか?

+1

バインドクリックイベント '。クリックされた要素参照を取得するには 'this'を使用し、data- *属性値を取得するには' data'を使用します。 – Tushar

答えて

2

だけjqueryの.data機能属性値を取得する

$("#measureButton").click(function() { 
     var currentIcon = $(this).data('icon'); 
     alert(currentIcon); 
     $(this).data('icon','eye'); 
     var currentIcon = $(this).data('icon'); 
     alert(currentIcon); 
    }); 

https://jsfiddle.net/qs9zwwo0/

+0

@Michaelと私は答えにいくつかの変更を加えました;) –

+0

@Michael私はそれを確認しました –

+0

私は家をクリックしてもアイコンは変わりません。 – Michael

0

ユーザーjQueryのattrの関数を使用します。

 $("#measureButton").click(function() { 
     //to get the data icon. 
     alert($(this).attr('data-icon')); 

     // to set data icon 
     $(this).attr('data-icon','eye'); 


}); 
0

純粋なJavaScriptを使用すると非常に簡単です。 Tushar同様

var iconData = measureButton.dataset.icon; 
関連する問題