javascript - 使用参数 (JavaScript) 将变量直接传递到 getElementById

标签 javascript innerhtml getelementbyid

我正在开发我的第一个 JavaScript 游戏,我想在

标记内显示某些属性。每个 < p> 标记的 ID 将等于“show-”和属性名称(有关属性“name”的信息,请参阅下面的示例)。

但是我在获取 getElementById 的语法时遇到了问题。有什么建议吗?

<p id="show-name"></p>

<script>
    name = "Bob";
    function display(attribute) {
        putItHere = "'show-"+attribute+"'"
        document.getElementById(putItHere).innerHTML = attribute;
    }
    display(name);
</script>

最佳答案

您需要定位正确的元素。目前,您的目标是“show-Bob”,而不是“show-name”。因此,首先从键 name 生成 id,然后为该元素分配一个值。

var name = "Bob";
function display(key, value) {
    var putItHere = "show-"+ key;
    document.getElementById(putItHere).innerHTML = value;
}
display('name', name);

note 请记住,ID 在文档中应该是唯一的

但是,另一种方法是使用特定标签来定位所有元素,例如

<div data-id="name"></div>
<div data-id="name"></div>
<div data-id="name"></div>

<script type="text/javascript">
    var name = "Bob";
    function display(key, value) {
        var putItHere = "show-"+ key;
        var elements = document.querySelectorAll('div[data-id="'+key+'"]');
        for(var eid in elements) {
            var element = elements[eid];
            element.innerHTML = value;
        }
    }
    display('name', name);
</script>

注意,这在 IE7 及更低版本中不起作用。

关于javascript - 使用参数 (JavaScript) 将变量直接传递到 getElementById,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30102479/

相关文章:

javascript - 为什么函数返回 element.innerHTML 或 element.innerText 未定义?

javascript - 如何阻止一个innerHtml表格一遍又一遍地重复?

javascript:使用 getElementByID 填充多个 div

javascript - 我怎么知道日期是否是星期六?

javascript - Angular JS 无法显示行的总计

javascript - 将键值对添加到数组中的所有对象

javascript - 三.js。应用 EdgesHelper 后更改网格位置

javascript - 通过 id 更改 span 的内容

javascript - 从表单提交中添加数组元素

javascript - 使用 JavaScript 在另一个 div id 中获取 div id