如何在Jquery中的其他类名右边提到的类名?
<div class="pure-u-1 pure-u-md-1-5 showOnload phoneId">
</div> /// It contains two classes of Pure and two custom classes.
</div>
<div class="pure-u-1 pure-u-md-1-5 showOnload addressId">
</div>
</div>
<div class="pure-u-1 pure-u-md-1-5 showOnload nameId">
</div>
</div>
在showOnload的基础上我想获得类名phoneId,addressId和nameId(不是纯css类)。 可能的JQuery代码可能是
$('.showOnload').each(function() {
//this.classname on right i.e Phone Id, Address Id and name Id
});
更新:正如伙伴们问我想要实现的是:如果div有showOnload,那么我必须扩展div(显示/隐藏),其中id = phoneId或addressId。
答案 0 :(得分:2)
你可以试试像
这样的简单正则表达式$('.showOnload').each(function () {
var clazz = this.className.match(/\w+Id\b/)[0]
});
基于更新
$('.showOnload').click(function() {
var match = this.className.match(/\w+Id\b/);
if (match) {
$('#' + match[0]).toggle();
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="pure-u-1 pure-u-md-1-5 showOnload phoneId">phoneId</div>
<div class="pure-u-1 pure-u-md-1-5 showOnload addressId">addressId</div>
<div class="pure-u-1 pure-u-md-1-5 showOnload nameId">nameId</div>
<hr />
<div id="phoneId">phoneId</div>
<div id="addressId">addressId</div>
<div id="nameId">nameId</div>
&#13;
答案 1 :(得分:1)
您可以使用hasClass()
,如下所示:
$('.showOnload').each(function() {
if ($(this).hasClass('phoneId')) { // Check if having class phoneId
alert('It has class phoneId');
}
});
您还可以使用regex
和indexOf()
,如下所示:
$('.showOnload').each(function() {
var classes = $(this).attr('class').split(/\s+/); // Split by spaces
if (classes.indexOf('phoneId') > -1) {
alert('It has class phoneId');
}
});
修改强>
使用attribute selector
限制匹配元素。
$('div[class$="Id"]').each(function() {
if ($(this).hasClass('phoneId')) { // Check if having class phoneId
alert('It has class phoneId');
}
});
<强>更新强>
如果div有showOnload,那么我必须使用id = phoneId或addressId展开div(显示/隐藏)。
$('div.showOnload[class$="Id"]').toggle();
答案 2 :(得分:0)
使用其中之一,
$('.showOnload.phoneId').each(function() {
get all phone id
});
或者
$('.showOnload').each(function() {
if ($(this).hasClass("phoneId")) {
}
});