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);

工作小提琴

检查 jQueryhas attribute selector

于 2012-06-04T14:19:48.587 回答