为什么我不能更改选项的文字?

时间:2018-02-23 08:31:41

标签: javascript jquery html html-select

我有一个带有选项的html选择。使用jQuery,我可以选择和读取选项的文本,但我无法使用.html('my_text')和.text('my_text)修改它。

这是我的HTML:

<select id="select_format_date" name="select_format_date">
    <option id='0' value="0">jj/mm/yyyy</option>
    <option id='1' value="1">jj mm</option>
    <option id='2' value="2">jj month short</option>
    <option id='3' value="3">jj month full</option>
</select>

以下是我尝试用jQuery修改文本的方法:

alert($("#select_format_date option[id='0']").text());
$("#select_format_date option[id='0']").text('TEST');
$("#select_format_date option[id='0']").html('TEST');

正如所说警告正确显示选项的文本所以选择器是好的,但我不能修改我不明白的原因,我的jQuery在$(document).ready(function() {}),所以DOM应该完全加载。 HTML和jQuery都在同一个文件中。我还尝试添加.change(),但没有用。

任何可能导致这种情况的想法?

感谢您抽出时间阅读和帮助。

修改

问题解决了我有一个插件.jqTransform弄乱了我的HTML,谢谢你的时间!!

1 个答案:

答案 0 :(得分:0)

正如您在下面的代码段中看到的,.text().html()都为我工作。

$(document).ready(function() {
	alert($("#select_format_date option[id='0']").text());
	//$("#select_format_date option[id='0']").text('TEST');
	$("#select_format_date option[id='0']").html('TEST');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="select_format_date" name="select_format_date">
    <option id="0" value="0">jj/mm/yyyy</option>
    <option id="1" value="1">jj mm</option>
    <option id="2" value="2">jj month short</option>
    <option id="3" value="3">jj month full</option>
</select>

也许你的jQuery没有被加载或者某些错误可能会停止代码其余部分的解析过程?