2016-08-25 8 views
0

Jqueryを使用する際に問題があります。Jqueryを使用して2つの属性を取得します

これは私のHTMLマークアップです:

<li><a class="" value="short" tool="car" type="monov"> text </a></li> 

私はLI、 "ttol" と "タイプ" のattrを選択した後、キャプチャすることがあります。

これは私のコードです:

var selectedTool = $(this).attr('tool'); 
var selectedType = $(this).attr('type'); 

しかし、それは動作しません、それは未定義到着...しかし、私はこの使用している場合:

$(this).html(); 

を私が手:

<li><a class="" value="short" tool="car" type="monov"> text </a></li> 

これらの属性はどのように取得できますか?

おかげでコードの下

+1

は$(この).find( "A")を試すと、あなたがそれらのattrの値を取得することができ、私のバイオリン中のLi項目をクリックするだけで、細かい作業。A​​TTR(」ツール ") –

+0

それは動作します!どうもありがとう!私は何を間違えたの? –

+0

あなたが助けてくれれば、以下の回答を確認してください –

答えて

3

試してみてください。それは未定義来ていたので、あなたは、Liの属性と属性のツール 'と「タイプ」にアクセスしようとしていた

var $anchor = $(this).find("a"); 
    var selectedTool = $anchor.attr('tool'); 
    var selectedType = $anchor.attr('type'); 

はアンカーです。

0

<a>タグが複数ある場合、このコードは正しく機能しません。

理想的には、各タグに一意のIDをIDの形式で追加する必要があります。別の方法として、クラス名を指定し、そのインデックスに基づいて要素の1つを識別することもできます。

<li><a class="" id="carOne" value="short" tool="car" type="monov"> text </a></li> 

あなたは、このような属性を取得するjQueryのを使用することができます。

$("#carOne").attr('tool'); 
0

あなたが最初のliタグに含まれるすべてのタグを選択する必要があります。次に、attr値を取得します。

あなたは試すことができます:あなたは<a>を選択したいときは、<li>を選択している

$("li a").attr('tool'); 
$("li a").attr('type'); 
2

これを試してください:

var element = $(this).find("a"); 

var selectedTool = element.attr('tool'); 
var selectedType = element.attr('type'); 
+1

毎回見つけられるのではなくセレクターを保つので、これはよりよく見えます。 – Brduca

0

はこれを試してみてください。そのアラート

$("li").click(function(e) { 
 
    
 
\t \t var selectedTool = $(this).find("a").attr('tool'); 
 
\t \t var selectedType = $(this).find("a").attr('type'); 
 
\t \t alert(selectedTool); 
 
\t \t alert(selectedType); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
      <li><a href="#" class="active" tool="car" type="monov" >Home</a></li> 
 
      
 
     </ul>

関連する問題