javascript - 美元哈希和变量 - $('#

标签 javascript jquery variables toggle

因此,为了在我的网站中显示和隐藏某些 DIV 标签,我得到了以下代码

$('#ONE').live('click', function () {
    $('.hide').css('display', 'none');
    $('#b-ONE').css('display', 'block');
});
$('#TWO').live('click', function () {
    $('.hide').css('display', 'none');
    $('#b-TWO').css('display', 'block');
});

点击 div 名称和“ONE”会打开某个“b-ONE”div,依此类推。它可以完美地工作,但是当列表变长时会很痛苦。你看到它在 JS 中说“一个”和“两个”的地方......有什么办法可以把这些“一个”和“两个”变成变量,所以我最多可以有 40 个 div 而不必为每个 DIV 输入上面的代码,并有一个流畅的代码,我只需要输入一次带有变量的函数?

我正在研究类似的东西,但缺乏深入的 JS/jQuery 知识:

$('#VARIABLETEXT').live('click', function () {
    $('.hide').css('display', 'none');
    $('#b-VARIABLETEXT').css('display', 'block');
});

点击名为“TWENTYONE”的 div 会显示 div“b-TWENTYONE”

非常感谢任何帮助!

最佳答案

在为要更改的元素构建选择器时,只需使用被点击元素的 id:

$('#ONE, #TWO, #THREE').live('click', function () {
    $('.hide').css('display', 'none');
    $('#b-' + this.id).css('display', 'block');
    // ^^^^^^^^^^^^^^
});

初始选择器 ("#ONE, #TWO, #THREE") 可以通过为所有这些元素赋予相同的类属性,然后使用 来更好地编写。类

可能还有一种结构化的方法,但是由于你没有引用你的HTML,所以不可能说。


旁注:live 函数不仅已被弃用,而且实际上已从最近的 jQuery 版本中删除。这是最新的等价物:

$(document).on('click', '#ONE, #TWO, #THREE', function () {
    $('.hide').css('display', 'none');
    $('#b-' + this.id).css('display', 'block');
    // ^^^^^^^^^^^^^^
});

关于javascript - 美元哈希和变量 - $('#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20745405/

相关文章:

javascript - 容器从上到下匹配导航栏

javascript - 在 iframe 托管代码无法访问的外部网站时获取 iframe 内容的高度

c# - 如何确定一个字符串是否是一个有效的变量名?

java - 在java中使用动态变量解析文本

javascript - 等待 Node.js Express 应用程序在 for 循环中调用 http.request

javascript - "Module not found"将 Nuxtjs 应用程序部署到 Netlify 时出错

javascript - 如果表格单元格的文本与变量相同,则更改表格单元格的 CSS

javascript - 在不允许通过 URL 手动更改的情况下启用后退按钮

php - 在特定日期之间打开和关闭页面

javascript - 验证文本字段中的数值未给出所需结果