我有一个带有选项的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,谢谢你的时间!!
答案 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没有被加载或者某些错误可能会停止代码其余部分的解析过程?