我对javascript很新,并试图自己解决这个问题,但我是一些对象和属性的新手。我相信我下面的代码可以用于更改文档中的“所有”“选项”文本,但我需要它只更改空选项标记的文本值,例如; <option></option>
,<option>Choose One</option>
。我想在页面加载时执行此操作,因为页面是由asp。
<script type="text/javascript">
function changeEmpty(){
document.getElementByTagName('option')options[0].text='Choose One';
}
</script>
答案 0 :(得分:2)
如果它将成为页面上的第一个选项,那么它将是
document.getElementsByTagName('option')[0].text='Choose One';
最好指定元素,以便将来有人在其之前添加一个选择,这无关紧要。
document.getElementById("MyId").getElementsByTagName('option')[0].text='Choose One';
答案 1 :(得分:0)
“我需要它才能更改空选项标签的文本值...”
您的语法无效,因此我不确定您认为它会改变所有option
元素的原因。
但你可以做的只是迭代它们,并测试文本内容。
var opts = document.getElementsByTagName('option');
for (var i = 0, len = opts.length; i < len; i++)
if (opts[i].text === "")
opts[i].text = "Choose One";
答案 2 :(得分:0)
如果您确实想要更改没有内容的所有<option>
,则可以使用此代码
function changeEmpty(){
var els = document.querySelectorAll( 'option' );
for ( var i=els.length; i--; ) {
if ( els.innerHTML.trim() == '' ) {
els.innerHTML = 'choose one';
}
}
}
假设空的<option>
始终是每个<select>
标记中的第一个,请更改为
var els = document.querySelectorAll( 'select > option' );
保存一些计算。
编辑
所有现代浏览器都支持 querySelectorAll()
,但在IE7及以前的版本中不支持!{p> {{1}}请参阅caniuse.com。