Javascript HTML中选项标记的意外行为
我有以下代码Javascript HTML中选项标记的意外行为,javascript,jquery,html,option,html-select,Javascript,Jquery,Html,Option,Html Select,我有以下代码 <select id="part"> <option>noun</option> <option>verb</option> <option>adjective</option> </select> 使用 var names=["noun","adjective","verb"]; for (var i =0;i<names.length;i++) { var optio
<select id="part">
<option>noun</option>
<option>verb</option>
<option>adjective</option>
</select>
使用
var names=["noun","adjective","verb"];
for (var i =0;i<names.length;i++) {
var option=$("<option>",{
value:names[i],
text:names[i]});
$("#part").append(option);
}
var name=[“名词”、“形容词”、“动词”];
对于(var i=0;i$(“#part”).text()
不会返回任何内容,但不会返回您期望的内容()
说明:text返回去掉html()的对象的文本,因此在去掉html之后,您将得到select的内部内容
如果需要所选值的文本,请在jquery选择器中包含所选选项:即$('#part option:selected')。text()
,它使用(也在我的小提琴中)。检查此处演示
您只需要获取所选选项文本,因为有三个选项
当您获得$(“#part”).val()
时,您直接获得所选值(仅一个所选值)。但当您获得$(“#part”).text()
时,您将获得整个所选文本的文本,其中有三个选项和三种文本类型
JQUERY
$(文档).ready(函数(){
变量名称=[“名词”、“形容词”、“动词”];
对于(var i=0;i$(“#part”).text()
不会给出一个空字符串(至少在Chrome中不会):-请注意,尽管您缺少一个“
,所以您的$(“#part”).text()
根本不起作用。请编辑您的问题,以改写“此处的值是属性”开头的句子(因为按原样是没有意义的-你是想说如果你把值属性从jQuery代码中保留在循环中,那么结果就不起作用了吗?)@nnnnn说了什么。还有专业提示:definevar$part=$(“#part”)
并且use在for
循环中。@nnnnnn:我已经为那个输入错误编辑了代码(缺少))并重新表述了问题。我正在使用firefox来测试这一点。
var names=["noun","adjective","verb"];
for (var i =0;i<names.length;i++) {
var option=$("<option>",{
value:names[i],
text:names[i]});
$("#part").append(option);
}
$(document).ready(function(){
var names=["noun","adjective","verb"];
for (var i =0;i<names.length;i++) {
var option=$("<option>",{
value:names[i],
text:names[i]});
$("#part").append(option);
}
$("#part").on('change', function() {
alert('Value is '+$(this).val());
var text = $("#part option:selected").text();
alert('Text is '+text);
});
});