[英]If element has class and another element is empty change class on another element
我有這個html結構,這是一個片段,同一結構中還有很多。
<button id="showEmpty">Press</button>
<div class="children">
<div class="package">
<span class="name"></span>
<span class="value"></span>
</div>
<div class="package array">
<span class="name"></span>
<span class="value"></span>
</div>
<div class="package">
<span class="name"></span>
<span class="value"></span>
</div>
<div class="package array">
<div class="children">
<div class="package array">
<span class="name"></span>
<span class="value"></span>
</div>
<div class="package">
<span class="name"></span>
<span class="value"></span>
</div>
<div class="package array">
<div class="children">
<div class="package array">
<span class="name"></span>
<span class="value"></span>
</div>
<div class="package array">
<span class="name"></span>
<span class="value"></span>
</div>
<div class="package">
<span class="name"></span>
<span class="value"></span>
</div>
</div>
</div>
</div>
</div>
</div>
我想在所有沒有任何內容的div中找到所有具有“數組”類的div元素,然后找到具有“值”類的span元素。
適用的那些我想用“名稱”類將div中另一個span元素的類更改為“空”。
到目前為止,我已經有了這段代碼,但是我不確定下一步要去哪里。
(function(){
$('#showEmpty').click(function() {
if ($('div.package').each().hasClass('array') && $('span.value').each().text().trim().length()) {
$('span.value').removeClass('name').addClass('empty');
else alert('no arrays found');
}
});
});
編輯:我也只需要在數組div沒有子div的情況下執行此操作
一種簡單的方法是(假設空白span
為<span></span>
,即其中沒有空白內容)
jQuery(function ($) {
$('#showEmpty').click(function () {
$('div.package.array').has('span.value:empty').find('span.name').removeClass('name').addClass('empty');
});
});
在這里,我們發現div
帶班package
和array
其中有一個空的span
帶班value
,然后找到span
與類name
在那些股利和刪除和添加類
如果span.value
可以為空值,則可以使用過濾器
jQuery(function ($) {
$('#showEmpty').click(function () {
$('div.package.array').filter(function () {
return $('span.value', this).text().trim().length() > 0;
}).find('span.name').removeClass('name').addClass('empty');
});
});
您可以使用此功能:
$('.array').each(function(){
if ($(this).children('span.value').text() === "")
{
$(this).children('span.name').addClass('empty').removeClass('name');
}
});
$('div.package.array > span.value').each(function () {
$('span.name').removeClass('name').addClass('empty');
});
這就是我要做的:
$('#showEmpty').click(function () {
$(".array > span.value:empty").siblings(".name").removeClass('name').addClass('empty');
});
您可以檢查元素以查看單擊按鈕時的更改。
您可以使用如下代碼:
$(document).ready(function(){
$('#showEmpty').click(function() {
$('div.package span.value').each(function(){
if ($(this).val().length==0) {
$(this).parent().find('span.name').removeClass('name').addClass('empty');
}
});
});
});
在這里提琴: http : //jsfiddle.net/n2o55xve/
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.