3

ここに質問があります

<div class="question">
            <div class="button" data-q="1" data-a="1"><a href="javascript:void();">2002</a></div>
            <div class="button" data-q="1" data-a="2" data-g="true"><a href="javascript:void();">2010</a></div>
            <div class="button" data-q="1" data-a="3"><a href="javascript:void();">1985</a></div>
            <div class="button" data-q="1" data-a="4"><a href="javascript:void();">2013</a></div>
        </div>

data-gが設定されているattr()のtext()値が欲しいのですが。

今、私が試したコードは機能しません

$('.question .button a').click(function(){    
  var aText = $(this).parents('.question').find('data-g').text();
  return aText;
});

これを試しましたが、.question DIV(2002,2010,1985,2013)内のすべてのテキストを取得します

$('.question .button a').click(function(){    
  var aText = $(this).parents('.question').text();
  return aText;
});

では、data-g属性を持つDIVの結果のみを取得し、2010のみをテキストとして取得するにはどうすればよいですか。

ありがとう

4

2 に答える 2

5
$('.question .button a').click(function() {
    var aText = $(this).closest(".question").find("[data-g]").text();
                      // to check for `true` use ("[data-g='true']")
    console.log(aText);
});​

デモ:http: //jsfiddle.net/2ny7j/

于 2012-06-04T14:17:54.567 に答える
1

次のように使用します

$('.question .button a').click(function(e){
  e.preventDefault();    
  var aText = $(this).closest('.question').find("div[data-g]").text();
  alert(aText);
  return aText;
});​

ノート

その関数から戻るaTextと、コード内のどこにもその値が返されません。これはコールバック関数であるため、クリックコールバックから返される値は、jQueryで異なる意味を持ち、予期しない動作が発生する可能性があります。その値を別の場所に渡す必要がある場合は、次のようなこの値で別の関数を呼び出す必要があります。

someFunction(aText);

ワーキングフィドル

jQueryを確認してくださいhas attribute selector

于 2012-06-04T14:19:48.587 に答える