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建议的解决方案是正确的。