javascript - 将每个 div 附加到 Javascript 变量

标签 javascript jquery

我知道可以使用如下代码将 DIV 附加到 Javascript 变量:

var targetDiv = jQuery('#targetDiv');

但是,我正在寻找一种将所有 DIV 或某个类的 DIV 附加到 Javascript 变量的方法。

所以,如果我有以下元素:

<div id='bozo'>
<div id='ranger'>
<div id='smokey'>

我最终会得到变量:

bozo
ranger
smokey

我一直在构建大量 jQuery 应用程序,它们通常有许多需要在我的代码中跟踪的 div。我想找到一种比在应用程序开头将它们分配给变量更简单的方法来控制这些 div。

jQuery 或 Javascript 解决方案都可以。

最佳答案

最有效的方法是使用 JavaScript 对象。

var divs = {};
$("div").each(function() {
    if ($(this).attr('id') !== undefined) {
        divs[$(this).attr('id')] = $(this);
    }
});

使用当前的 HTML,可以像这样访问 div:

divs["bozo"].show(0);
divs["ranger"]show(0);
divs["smokey"].show(0);

您不能直接在 div ID 之后命名 JavaScript 变量,因为它们具有不同的命名约定。例如,test-div 是 HTML 元素的有效 ID,但 not for a JavaScript variable .

但是,如果 ID 恰好是有效的 JavaScript 变量名称,则可以将其作为对象的助记属性进行访问:

divs.bozo.show(0);
divs.ranger.hide(0);

See this demo.

编辑:根据 icktoofay 和 ABFORCE 的建议,添加了检测 div 何时没有 ID 的功能。

关于javascript - 将每个 div 附加到 Javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18029516/

相关文章:

Javascript 数组在初始化后只包含未定义的,不包含给定的值

javascript - 后退按钮上的 jQuery 或 Javascript 警报

javascript - 函数未在 setInterval 上运行

javascript - 使用 Jquery 从本地计算机重新加载或刷新页面

javascript - 如何获取点击的菜单详情

jquery - 如何动画 "visibility: hidden"?

javascript - 将 ts sass 转换为 js 中的内联 css

javascript - 显示 XML 文件中的数据

javascript - Asp.net autocompleteextender 选择光标点问题

javascript - 跨域ajax请求不发送响应