Я хочу использовать текст радиовходов. Как я могу получить его с помощью jQuery или JavaScript

Я хочу использовать текст 5 и 6, показанный ниже. Я не могу изменить HTML, так как он генерируется автоматически, и есть много других радио с такой же структурой. Как я могу добиться этого с помощью jQuery или JavaScript и хранить их как переменные.

<label class="radio">
    <label style="display: none;">
        <input type="radio" name="x_keeper1_price" id="x_keeper1_price_0" value="21"/>
    </label>
    5
</label>

<label class="radio">
    <label style="display: none;">
        <label style="display: none;">
            <input type="radio" name="x_Defd5_price" id="x_Defd5_price_0" value="28"/>
        </label>
    </label>
    6
</label>

3 ответа

Решение

Если ваш текст после переключателя - HTML-код, это лучшее решение:

var text = $("#x_keeper1_price_0") //the radio button
           .closest("label.radio") //the label with class=radio)
           .html()                 //the html code
           .replace(/<label[\d\D]+<\/label>/, '');
           /* Removing the "second" label and its content.
              That will get the text after the radio button. */
alert(text);

jsfiddle: http://jsfiddle.net/72KcV/3/

Для этой конкретной разметки вы можете использовать следующий код jQuery:

$('label.radio').each(function(){
   console.log($(this).contents()[2].nodeValue) 
});

http://jsfiddle.net/eKG22/

Вы можете сделать следующее

$('.radio').text()

см. рабочее решение здесь: http://jsfiddle.net/TfP5X/

Поскольку мы используем класс для выделения текста, вы можете зациклить селектор и сделать что-то с каждым значением, например, так.

var items = $('.radio');
$.each(items, function(i, item) {
   var text = $(item).text();
   //do something with text
});
Другие вопросы по тегам