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



这是问题

<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 年作为文本。

谢谢

$('.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/

像这样使用它

$('.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

最新更新