如何在单选按钮后获取文本

时间:2011-06-28 11:41:51

标签: javascript jquery html

代码:

<input type="radio" value="x" name="a" />One<br />
<input type="radio" value="y" name="b" />Two<br />
....

我上面有很多radio个按钮。

单击radio后如何获取文本字符串?

编辑HTML是不可能的

5 个答案:

答案 0 :(得分:3)

您可以使用jQuery从中获取nextSibling数据,因为该文本不是当前输入标记的一部分,并且不包含在任何标记中。

jQuery的:

$(document).ready(function() {
    $("input[type=radio]").click(function(e) {
        var radioText = e.currentTarget.nextSibling.data
        alert(radioText);
    });
});

编辑: 对于另一个编辑来说还有点晚,但你可以使用标签或将文本包装在p或span标签中,以便更容易使用jQuery进行定位

<input type="radio" value="x" name="a" /><span>One</span><br />
<input type="radio" value="y" name="b" /><span>Two</span><br />

    (function(){
        var inputs = $('input[type=radio]');
        inputs.each(function(i, elm){
            console.log($(elm).next().html());
        })
    })();

您将在日志中看到span元素的文本。 (在控制台中)

答案 1 :(得分:1)

这应该有效:

var radioButtonNames = ["a", "b"];  // Add the names of your other radio buttons 
for (var i = 0; i < radioButtonNames.length; i++) {
    document.getElementById(radioButtonNames[i]).onclick = function(){
        var result = this.nextSibling.data;
        alert(result);
    }
}

答案 2 :(得分:0)

该文本属于<body>标记或其最近的父标记。我将文本包装在<span>中,然后在单选按钮的点击事件处理程序中执行$(this).next('span').text()

答案 3 :(得分:0)

var radioLength = radioObj.length;
if(radioLength == undefined)
    if(radioObj.checked)
        return radioObj.value;
    else
        return "";
for(var i = 0; i < radioLength; i++) {
    if(radioObj[i].checked) {
        return radioObj[i].value;
    }
}

这将获取无线电对象的值,然后您可以使用上一个答案将响应拉入一个或div


答案 4 :(得分:0)

请使用object.innerHTMLobject.innerText方法

在你的情况下,JS就像。

var text = $('a').innerHTML;