在每个 jQuery 中检测到一个特殊的 class
Detect a special class during a each into jQuery
如何检查我的所有 span
元素是否都有特殊的 class(a、b 或 c)?
<form id="form">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<span class="a b"><span>
<span class="b"><span>
<span class="b c"><span>
<span class="a c"><span>
<span class="c"><span>
</div>
</div>
</form>
<script>
var class_to_search = 'a';
$('#form > span:not(.'+ class_to_search +')').each( function(i) {
$(this).addClass('hide');
});
</script>
但是没用。
我添加了一点以显示差异,但您可以在 dom 和 jquery 中进行范围搜索,方法是在搜索选择器 .a
中使用子选择 #form
这样可以更快地找到它而无需遍历整个 dom 每次通过。
$(document).ready(function() {
var class_to_search = '.a';
$(class_to_search,'#form').each(function(idx,e) {
$(e).addClass('show');
});
});
.a,.b,.c{
height: 15px;
border: 1px solid red;
width: 15px;
padding: 5px;
margin: 0 5px;
background-color: blue;
}
.show{
border: 2px solid blue;
background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<span class="a b"></span>
<span class="b"></span>
<span class="b c"></span>
<span class="a c"></span>
<span class="c"></span>
</div>
</div>
</form>
您需要做的就是确定要显示的 class - 隐藏所有元素(跨度),然后显示具有该 class 的元素。
$(document).ready(function(){
$("#selection").change(function(){
var elementToShow = $(this).val();
$('#contentRow span').hide();
$('#contentRow .' + elementToShow).show();
})
});
#contentRow span{display:block}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form">
<label for = "selection">Select the element you wish to show</label>
<select id = "selection">
<option selected disabled></option>
<option>a</option>
<option>b</option>
<option>c</option>
</select>
<hr/>
<div class="row">
<div id= "contentRow" class="col-md-10 col-md-offset-1">
<span class="a b">test 1 (contains classes a & b)</span>
<span class="b">test 2 (contains class b)</span>
<span class="b c">test 3 (contains classes b & c)</span>
<span class="a c">test 4 (contains classes a & C)</span>
<span class="c">test 5 (contains class c)</span>
</div>
</div>
</form>
如何检查我的所有 span
元素是否都有特殊的 class(a、b 或 c)?
<form id="form">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<span class="a b"><span>
<span class="b"><span>
<span class="b c"><span>
<span class="a c"><span>
<span class="c"><span>
</div>
</div>
</form>
<script>
var class_to_search = 'a';
$('#form > span:not(.'+ class_to_search +')').each( function(i) {
$(this).addClass('hide');
});
</script>
但是没用。
我添加了一点以显示差异,但您可以在 dom 和 jquery 中进行范围搜索,方法是在搜索选择器 .a
中使用子选择 #form
这样可以更快地找到它而无需遍历整个 dom 每次通过。
$(document).ready(function() {
var class_to_search = '.a';
$(class_to_search,'#form').each(function(idx,e) {
$(e).addClass('show');
});
});
.a,.b,.c{
height: 15px;
border: 1px solid red;
width: 15px;
padding: 5px;
margin: 0 5px;
background-color: blue;
}
.show{
border: 2px solid blue;
background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<span class="a b"></span>
<span class="b"></span>
<span class="b c"></span>
<span class="a c"></span>
<span class="c"></span>
</div>
</div>
</form>
您需要做的就是确定要显示的 class - 隐藏所有元素(跨度),然后显示具有该 class 的元素。
$(document).ready(function(){
$("#selection").change(function(){
var elementToShow = $(this).val();
$('#contentRow span').hide();
$('#contentRow .' + elementToShow).show();
})
});
#contentRow span{display:block}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form">
<label for = "selection">Select the element you wish to show</label>
<select id = "selection">
<option selected disabled></option>
<option>a</option>
<option>b</option>
<option>c</option>
</select>
<hr/>
<div class="row">
<div id= "contentRow" class="col-md-10 col-md-offset-1">
<span class="a b">test 1 (contains classes a & b)</span>
<span class="b">test 2 (contains class b)</span>
<span class="b c">test 3 (contains classes b & c)</span>
<span class="a c">test 4 (contains classes a & C)</span>
<span class="c">test 5 (contains class c)</span>
</div>
</div>
</form>