javascript - 与 addClass 和 show 相关的 jQuery 代码错误

标签 javascript jquery html css

这是我的代码 - 相当简单:

$(document).ready(function(){         
  $(".location").each(function(){             
    $(this).click(function(){                 
      $("map").hide();                 
      var class = $(this).attr("data");                       
      $(".location").removeClass("activeLocation");                 
      $(this).addClass("activeLocation");                 
      $("." + class).show();             
    })         
  })     
});

HTML

<div id="locations">     
  <div class="location activeLocation" data="brian">1205 S 75th St</div>     
  <div class="location one" data="mark">6603 A Royal Street</div>     
  <div class="location" data="dan">4725 Merle Hay Rd</div>     
  <div class="location" data="andy">62 Soccer Park Road</div>     
  <div id="mapviewer" class="brian map">Map to 1205 S 75th Street</div>     
  <div style="display: none;" id="mapviewer" class="mark map">Map to 6603 A Royal Street</div>     
  <div style="display: none;" id="mapviewer" class="dan map">Map to 4725 Merle Hay Rd</div>    
  <div style="display: none;" id="mapviewer" class="andy map">Map to  62 Soccer Park Road</div>
</div>

如果我注释掉两行,一切正常:

var class = $(this).attr("data");
$("." + class).show();

没有这两行注释,根本没有任何 Action 。这两行代码对我来说看起来不错。 我错过了什么?

最佳答案

class 是一个 reserved word (for future use) [MDN] .使用另一个变量名称(例如 cls)。


此外,您应该使用 HTML5 data-* attributes 而不是使用自定义 HTML 属性.

关于javascript - 与 addClass 和 show 相关的 jQuery 代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769325/

相关文章:

javascript - 选择 html 页面中没有 id 的元素

javascript - JQuery动态for循环问题

javascript - 为目标 ="_blank"在 HTML 中打开新窗口

javascript - 答案不会显示在消息框中

html - 如何在 dropkick 插件下拉列表之前显示内联文本

html - 使子溢出 div 正确调整其父级的大小

javascript - 在函数内部访问函数的属性

javascript - 如何在谷歌关闭中选择下拉菜单(附加选项)?

javascript - JQuery 将 2 个输入框的值添加到第三个

javascript - 从 ajax 响应构建 html 有哪些选项?