javascript / jquery-解析收音机/复选框的所有元素 – 如何获取每个元素的文本值
我试图通过复选框/单选按钮进行解析。
作为一个例子,让我们考虑下面的单选按钮的html代码 –
Lunch- Pasta Rissotto
现在我使用以下代码来获取屏幕上显示的文本值(例如“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检索文本值。 理想情况下,您应该创建标签元素来保存文本。 例如
然后你可以得到文字:
$(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()
不适用于那些没有close标签的元素。 例如
如果您阅读.text()
的文档,则清楚地写明.text()
方法不能用于表单输入或脚本。
我不确定你想要显示什么,但是给出value
属性会在Radio Button旁边显示一个文本。 多数民众赞成如何运作。 我不确定为什么你想要另外一个额外的文字。 但如果是这样,那么@Vikk建议的解决方案是正确的。