13

我正在尝试获取text属于checked单选按钮的标签,但似乎不太可能。

$(document).ready(function(){
  $("body").on("click", "#btn", function(){

    var radios = $("input[type='radio']");

    $.each(radios, function(index, element){
      if ($(this).prop("checked") === true){

        var radioID = element.id;
        $("label").each(function(ind, elm){

          if ($(elm).prop("for") == radioID){
            console.log($(elm)); 
          }

        });
      }
    });
  });
});

jsbin

无论出于何种原因打印出来

-- [11:07:13.834] ({0:({}), context:({}), length:1}) @ http://jsbin.com/uniwum/2/edit:71

在控制台中。我做错了什么?

4

6 回答 6

35

这样做: -

$('#btn').click(function() {
    $("input[type='radio']:checked").each(function() {
        var idVal = $(this).attr("id");
        alert($("label[for='"+idVal+"']").text());
    });
});

参考现场演示

更新:

以下是文档参考:-

于 2013-02-28T17:29:53.827 回答
4

试试这个:

$('#btn').click(function(){
    $('table input[type="radio"]').each(function(){
        if($(this).is(':checked')){
        console.log($(this).parent().next().find('label').text());
        }
    });
});

jsFiddle 示例

更新:由于它们是单选按钮,因此更快的方法是:

$('#btn').click(function(){
    console.log( $('table input[type="radio"]:checked').parent().next().find('label').text() );
});

jsFiddle 示例

于 2013-02-28T17:14:54.580 回答
3
$("input[type='radio']:checked").parent().text()
于 2018-02-09T18:01:07.337 回答
0

选择元素后,您需要调用该.text()函数来获取元素的文本,如下所示$(elm).text()

在这种情况下,由于elm已经是一个 DOM 节点,因此您可以调用 plainelm.innerHTML以获得相同的结果。

于 2013-02-28T17:13:53.703 回答
0

试试这个代码:

$("td",$(":checked").parent().parent()).text()

jsFiddle 的链接http://jsfiddle.net/rQX7H/2/

于 2013-02-28T17:14:06.603 回答
0

您可以通过多种方式做到这一点,具体取决于为单选按钮编写的 HTML 和单选按钮的文本,我看到了两种可以用很少的努力完成的方法。

方法 1:将自定义数据属性分配给具有要显示的相同文本的单选按钮。

    <input id="radio4" name="radios1" type="radio" value="4" data-value="radio 4" /> radio 4
    <input id="radio5" name="radios1" type="radio" value="4" data-value="radio 5"/> radio 5
    <input id="radio6" name="radios1" type="radio" value="4" data-value="radio 6"/> radio 6
    <input type="button" id="btn" value="Get from data-value" />

有关自定义数据属性的详细信息,请访问:自定义数据-* 属性

获取文本的脚本:

$(document).on("click", "#btn", function () {
            var value = $("input[name=radios1]:checked").attr("data-value");
            alert(value);
        });

方法 2:转换单选按钮的 html 以便为所有单选按钮分配相同的 [name] 属性,然后为单选按钮放置“标签”字段,如下所示

<input id="radio1" name="radios" type="radio"/>
        <label for="radio1"> radio 1</label>
    <input id="radio2" name="radios" type="radio"/>
        <label for="radio2"> radio 2</label>
    <input id="radio3" name="radios" type="radio"/>
        <label for="radio3"> radio 3</label>
    <input type="button" id="btn1" value="Get from Label" />

获取文本的脚本:

$(document).on("click", "#btn1", function () {
        var idVal = $('input[name=radios]:checked').attr("id");
        $("label[for='"+idVal+"']").text();
        //If you have the radio button in HTML table structure write it as below
        $('input[name=radios]:checked').parent().find('label').text();
    }

希望这可以帮助 :)

于 2014-08-21T11:13:05.080 回答