【问题标题】:JQuery Class selector, selecting elements with "-" (hyphen)JQuery 类选择器,选择带有“-”(连字符)的元素
【发布时间】:2015-02-06 23:25:56
【问题描述】:

我遇到了一个我无法理解的问题。

我正在更新一个网站(不是我写的)并尝试解决一些问题。 在 JS 脚本文件的某处,有一些东西在特定元素中添加了内联 CSS 属性高度。这需要删除。 已经找到执行的地方了。

在 HTML 中,我有具有“swipe-control”、“swipe-right”、“swipe-left”和“swipe”类的元素

我在 JS 文件中与“滑动”相关的唯一代码是下面的代码

jQuery('.swipe').height(jQuery(window).height());

已更改此项以查看找到了多少对象:

jQuery('.swipe').each(function(){
  jQuery(this).height(jQuery(window).height());            
  console.log(">>>>> ");
  console.log(this);
});

所有具有“swipe-*”类的元素也都被更新为这个高度。

这正常吗? (已经验证过的 jQuery 类选择器文档)

【问题讨论】:

  • “所有具有类“swipe-*”的元素也正在更新到这个高度。”不,它们不是,不是由那个 i> 代码;除非他们swipe类(后面没有-xyz)。
  • 不,那样不行,看这里:jsfiddle.net/7fuogouj 只找到 5 个元素。
  • 只包含足够的代码以允许其他人重现该问题。如需帮助,请阅读如何创建Minimal, Complete, and Verifiable example。就目前而言,这个问题缺少帮助诊断问题的代码。
  • 如果您想检查与您的 jQuery 选择器匹配的内容(对调试有用),只需 console.log(jQuery('.swipe'))
  • 你能告诉我们为什么必须删除这个内联样式的原因吗?如果原因是 SEO 角度,那么这不是问题。因为搜索引擎不执行 JavaScript 代码。这种内联样式是在运行时添加的,不是搜索引擎解析的原始 HTML 文档的一部分。

标签: jquery css class selector hyphen


【解决方案1】:

根据您的描述检查此处所做的复制。您是否看到,当单击标有“运行”的按钮时,所有或多个 div 都会改变其高度?

如果你看到不止一个 div 改变了它的高度,那么是的,这是你的浏览器的异常行为,而不是 jQuery。如果您只看到一个高度增加的 div,那么您是对的。

更新:

另外,请确保您的

"swipe-*"
类实际上并不是
"swipe -*" like "swipe -left"

function changeSwipe(){
  $(".swipe").height(300);
}
.box {
  width: 200px;
  height: 100px;
  background: red;
  border: 1px solid;
  float: left;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="swipe box">swipe</div>
<div class="swipe-right box">swipe-right</div>
<div class="swipe-whatever box">swipe-whatever</div>
<div class="no-swipe box">no-swipe</div>
<button onclick="changeSwipe();">Run</button>

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 2011-01-04
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 2013-07-17
    • 2011-09-30
    • 2013-09-02
    相关资源
    最近更新 更多