我有一个脚本可以更改textarea的文本对齐方式,其ID为textbox1
:
// <![CDATA[
function alignFix() {
document.getElementById("textbox1").style.textAlign="left";
}
// ]]>
这是标记:
<textarea cols="36" rows="25" readonly="readonly" id="textbox1" name="textbox" style="text-align: center;">dynamic text populates via another script unrelated to problem</textarea>
这是触发器:
<select class="c9" onchange="showCenterTemplates(this); alignFix();">
它运作得很好。现在我有一个以上的textarea我需要这个脚本来工作,所以我认为这将是一个简单的从document.getElementById
切换到document.getElementsByTagName
但是我的无知/惊讶,这不是很好
我搜索了问题和论坛以及Google,并找到了document.getElementsByTagName的实例,但不是我需要的方式。
似乎在使用getElementsByTagName
时,必须始终声明一个变量(任何人都可以确认这是否为真?)所以我试过了:
// <![CDATA[
function alignFix() {
var textbox = document.getElementsByTagName('textarea');
style_textbox = textbox.style;
style_textbox.textAlign="left";
}
// ]]>
但是在测试时我遇到了style_textbox is null or not an object
错误。有人可以帮帮我吗?非常感谢提前。
P.S。脚本的原因是因为textareas的原始内容需要居中,但是当用户开始从<select>
中选择模板以使用<textarea>
在showCenterTemplates()
中动态填充时脚本,这些模板需要在<textarea>
内留下对齐的文本。希望这是有道理的。
答案 0 :(得分:6)
getElementsByTagName返回一个元素数组,因此你必须遍历它:
var i,j, textbox = document.getElementsByTagName('textarea');
for (i=0, j=textbox.length; i<j; i++) {
textbox[i].style.textAlign='left';
}
编辑:评论中的每个请求,一个简短的解释: