我正试图通过复选框/单选按钮进行解析。
作为一个例子,让我们考虑下面单选按钮的html代码——
<br/><br/>Lunch-
<input type="radio" name="lunch" value="pasta1" /> Pasta
<input type="radio" name="lunch" value="rissotto1" /> Rissotto
<br/>
现在我使用以下代码来获得屏幕上显示的文本值(例如"Pasta"(和指定的值(例如,"pasta1"(--
$(jQuery('input[type="radio"], input[type="checkbox"] ', $(element).parent('form'))).each(function()
{
alert(" Text values =" + $(this).text());
alert(" actual values =" + $(this).val());
---SOME MORE CODE---
}
作为输出,当我使用$(this(.text((时,我没有得到任何值,尽管$(this(.val((工作得很好。
如何获取单选按钮/复选框的每个元素的文本值。。。我可以用什么来代替上面使用的$(this(.text((?是否有其他方法可以获得文本值(例如上面的例子中的"Pasta"或"Risotto"(?
我认为您无法使用现有HTML检索文本值。理想情况下,您应该创建标签元素来容纳文本。例如
<input type="radio" name="lunch" value="pasta1" /> <label>Pasta</label>
<input type="radio" name="lunch" value="rissotto1" /> <label>Rissotto</label>
然后你可以得到文本:
$(this).next().text();
编辑:
如果您不能更改HTML,这里有一个肮脏的解决方法。
假设您在这些单选按钮周围有一个id为wrapper
的包装元素(form或div(,并且每个单选按钮都有唯一的值-
/*
* Create mapping between radio button values and texts
*/
var mapping = new Array();
var current_key = '';
$('#wrapper').contents().each(function()
{
if(current_key)
{
mapping[current_key] = $(this).text();
current_key = '';
}
if($(this).attr('type') == 'radio')
{
current_key = $(this).val()
}
});
然后你可以很容易地使用映射:
$('input[type=radio]').each(function()
{
text = mapping[$(this).val()];
})
.text()
不适用于那些没有结束标记的元素。例如<INPUT> <IMG>
如果您阅读了.text()
的文档,其中清楚地写道,.text()
方法不能用于表单输入或脚本
我不确定您到底想显示什么,但给定value
属性会在单选按钮旁边显示一个文本。这就是它的工作原理。我不知道你为什么要在那之后再发一条短信。但如果是这样的话,那么@Vikk提出的解决方案是正确的。