如何在jquery中通过attr()获取text()

时间:2012-06-04 14:16:35

标签: jquery

这是问题

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

我想为attr()设置data-g的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作为文本。

由于

2 个答案:

答案 0 :(得分: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);
});​

DEMO: http://jsfiddle.net/2ny7j/

答案 1 :(得分: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);

Working Fiddle

检查jQuery has attribute selector