我正在尝试选择一个输入字段来通过javascript添加占位符,但它似乎不起作用......这是我的代码:
function scriptparent() {
var scriptTag = document.getElementsByTagName('script');
scriptTag = scriptTag[scriptTag.length - 1];
var parent = scriptTag.parentNode;
return parent;
};
<div class="form-group">
<input type="text" class="form-control">
<script>scriptparent().firstChild.setAttribute("placeholder","something");</script>
</div>
我也尝试了不同的变体(比如获得previousSibling of script),但没有让它起作用。 如果您想知道为什么我尝试这样做是因为“某些东西”是来自json文件的语言上瘾变量,它就像
“scriptparent()firstChild.setAttribute。(” 占位符 “lang.nav.search.placeholder [语言]);”
真实。
我是一个javascript noob,所以如果有人能指出我正确的方向会很好......
答案 0 :(得分:0)
使用firstElementChild
代替firstChild
。否则,您将获得表示input
之前的空白区域的文本节点。
另外,请确保scriptparent()
是全局的。我不知道SO的代码片段在哪里放置了JS,但是你的函数不是全局的或者是及时定义的,所以我只是将脚本移动到了HTML。
<script>
function scriptparent() {
var scripts = document.getElementsByTagName('script');
return scripts[scripts.length - 1].parentNode;
};
</script>
<div class="form-group">
<input type="text" class="form-control">
<script>scriptparent().firstElementChild.placeholder = "something";</script>
</div>