我有一个输入字段,如下面的
<input class="d_o" type="radio" value="super" name="old_or_new" checked="checked"> Get this value actually</input><br/>
我必须得到输入字段的值,即Get this value actually
,所以尝试了下面的jquery代码
console.log($('.d_o').text());
但令我感到惊讶的是它没有返回任何内容,并且当它试图获得像$('.d_o').val()
那么如何使用jquery从上面的输入字段中获取文本值我错过了什么?
答案 0 :(得分:5)
您的<input>
元素的全部内容为
<input class="d_o" type="radio" value="super" name="old_or_new" checked="checked">
在它之后的文本和无效的 html </input>
是DOM树中完全不同的节点。因此val
会按预期返回值“super”,但text
没有要返回的文本。
答案 1 :(得分:1)
.text()方法不能用于表单输入或脚本
虽然我不确定jQuery遵循什么方法:一个解释可以是每个HTMLElement的“内容模型”规范。
Content model
A normative description of what content must be included as children and descendants of the element.
例如:
对于输入类型:http://www.w3.org/TR/html5/forms.html#the-input-element
内容模型:清空。
但是对于标题元素,这被定义为
Content model : Text
http://www.w3.org/TR/html5/document-metadata.html#the-title-element
渴望在此假设上看到验证:)
答案 2 :(得分:0)
<input class="d_o" type="radio" value="super" name="old_or_new" checked="checked"> Get this value actually</input><br/>
这不是处理<input>
标记的正确方法。您应该使用:checked和。val()代替:
$(document).ready(function(){
$('#hey').on('click', function(event){
alert($('.check:checked').val());
});
});
<h2>Select old or new</h2><br>
<b>Old</b>:<br>
<input type="radio" class="check" name="old_or_new" value="old"><br>
<br>
<b>New</b>:<br>
<input type="radio" class="check" name="old_or_new" value="new"><br>
<br>
<input type="button" id="hey">