这是问题
<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