Magento 1.9.3.8中的Javascript。如果body包含某个类且元素id包含一个类,则向元素添加id

时间:2018-04-30 13:03:40

标签: javascript magento-1.9.3

以下代码会将类“active”分配给id =“39”的元素。如果满足两个条件,就会发生这种情况:1)机构在其班级中包含“酒店商店” - 所以机构类可能是酒店商店,酒店商店-1,酒店商店-2,酒店商店 - 3,等等 - 和2)id =“dropdown-menu”的元素将包含“active”类。

仍然,代码不起作用。您是否有任何关于错误的想法,或者为什么此代码不起作用?任何帮助将不胜感激。

if ( ($('body[class*="hotel-stores"]').length > 0)  && ( $( "#dropdown-menu" ).is( ".active" ) ))  {
   var el = document.getElementById("39");
   el.classList.add("active");
}

第二种方式看起来效果很好,但只有当身体类是“酒店商店”时才会这样:

if (document.body.classList.contains('hotel-stores')) {
    var el = $(document.getElementById("39"));
    el.addClassName("active");
}

1 个答案:

答案 0 :(得分:0)

你在评论中说过

  

未捕获的TypeError:无法读取属性'长度'在酒店商店

这告诉我,该代码中的$不是jQuery,而是I assumed,但是其他一些库,可能是PrototypeJS,因为它是Magento网站。

如果加载了jQuery,只需将$更改为jQuery即可。

如果你还没有加载jQuery,你可以用PrototypeJS做同样的事情,只是略有不同,因为PrototypeJS不像jQuery那样基于集合:

if (document.body.className.indexOf('hotel-stores') !== -1 && $$("#dropdown-menu.active").length) {
   var el = $(document.getElementById("39"));
   el.addClassName("active");
}