按类前缀定位元素
假设我有如下元素:
<div class="home">
<div class="tab231891230"></div>
<div class="tab121232441"></div>
<div class="tab123134545"></div>
</div>
如何使用 jQuery 选择具有以 "tab"
开头的类的 div 元素?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
它称为属性以选择器开头。我的示例在元素上设置红色文本颜色:
jsFiddle 演示
请注意,如果元素有多个类,而另一个类在包含
tab
的元素 (class="nyedva tab231891230"
) 之前,该选择器不会选择该元素。如果您想选择这些,您可以使用以下示例:
jsFiddle 演示
It is called the Attribute Starts With Selector. My example sets a red text color on the elements:
jsFiddle Demo
Please note that if the elements have more than one class and the other precedes the one with
tab
inside (class="nyedva tab231891230"
) the element won't be selected by this selector.If you want to select even these, you can use this example:
jsFiddle Demo
如果一个元素中有多个类,请使用它来选择
它将与这样的元素一起使用
参考: jquery属性包含选择器
If you have multiple class inside one element, use this to select
It will work with element like this
Reference : jquery attribute-contains selector
您可以这样做:
请参阅 http://api.jquery.com/attribute -以选择器开头/
You can do it like this:
See http://api.jquery.com/attribute-starts-with-selector/
首先也是最重要的:尝试始终使用 安全分隔符,例如
-
即:tab-something
按前缀选择类的正确方法是使用两个组合 href="https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors" rel="nofollow noreferrer">属性选择器,
^
开头为和*
包括。原因是:仅使用:
[class^="tab-something"]
这样将仅选择class="tab-something foo bar"
但不会class="foo tab-something bar"
元素 — 给你不稳定的结果。通过 className 前缀定位元素
JavaScript:
jQuery:
CSS:
到回顾:
以上将确保同时定位
"tab-aaa foo bar"
和"foo tab-bbb bar"
First and foremost: try always to use a Safe Delimiter like
-
I.e:tab-something
The proper way to select class by prefix is by using a combination of two Attribute Selectors, the
^
Starts With and*
Includes.The reason being: by using only:
[class^="tab-something"]
such will select onlyclass="tab-something foo bar"
but notclass="foo tab-something bar"
elements — giving you erratic results.Target elements by className prefix
JavaScript:
jQuery:
CSS:
To recap:
the above will make sure to target both
"tab-aaa foo bar"
and"foo tab-bbb bar"
为什么用那个?该数字,您可以分配给 rel 或 id 属性,如下所示:
然后可以在以下位置访问它:
或者甚至添加当前“tab”类的子类:
然后,只需按 jQuery 示例中的“tab”类进行选择多于,
然后对第二类做任何你想做的事情(检查它是否在那里,
删除它)。
检查这些:
http://api.jquery.com/class-selector/
http://api.jquery.com/hasClass/
http://api.jquery.com/addClass/
http:// api.jquery.com/removeClass/
why use that? that number, you can assign to rel or id attribute, like this:
then it will be accessible at:
or even, add a subclass of that current "tab" class:
then, just select by "tab" class like in the jQuery example above,
and do whatever you want with the second class (check if it's there,
remove it).
check these:
http://api.jquery.com/class-selector/
http://api.jquery.com/hasClass/
http://api.jquery.com/addClass/
http://api.jquery.com/removeClass/