2012-06-04 2 views
3

Вот вопросыКак получить текст() на ATTR() в 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(), которые имеют данных г набор.

Сейчас код, который я пытался не работать

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

Итак, как я могу получить только результат DIV с атрибутом data-g и получить только текст 2010 как текст.

Благодаря

+0

возможный дубликат [JQuery, как найти элемент, основанный на значение атрибута данных?] (http://stackoverflow.com/questions/4191386/jquery-how-to-find-an-element-based-on-a-data-attribute-value) и [Как найти элемент с определенным атрибутом, имеющим определенное значение] (http://stackoverflow.com/questions/9307448/how-to-find-an-element-with-a-specific-attribute-that-has-a-специфические- стоимость) и [многие другие] (http://stackoverflow.com/search?q=jquery+find+element+with+certain+attribute). –

ответ

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/

+0

Я пробовал и не работал, но это работало: var aText = $ (this) .parents ('. Question'). Find ("[data-g = 'true']"). Text() ; - Сначала я должен вернуться к родителям, чтобы найти ближайшего. Ну, я думаю – Warface

+0

@Warface Лучше использовать 'ближайший' вместо' родителей'. Итак, вы перейдете к первому родительскому классу, который имеет класс '' .question ", а затем внутри этого элемента вы ищите элементы с атрибутом' '[data-g]" '. – VisioN

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

Смежные вопросы