我想在所有没有“阻止”类的div中附加提到的标记
if( !($('td').hasClass('block')) ){
$('.block').mouseover(function() {
$(this).append('<small style="color:green">Available</small>');
});
$('.block').mouseout(function() {
$('small').remove();
});
}
答案 0 :(得分:1)
像这样修改你的代码
$('td').on('mouseenter', function(){
if(!($(this).hasClass('block'))){
$(this).append('<small style="color:green">Available</small>');
$('td').mouseout(function() {
$('small').remove();
});
}
});
td { width:150px; height:100px; float:left;background:#666; }
<table>
<tr>
<td></td><td></td><td class="block"></td>
</tr>
</table>
答案 1 :(得分:0)
您可以使用:not()
选择器排除block
类的所有元素,如下所示:
var myElement = $("<small class='smallMsg'>available</small>");
$('div:not(.block)').append(myElement);
div { border:1px solid #000; margin: 1em; padding: 1em; }
.smallMsg { color: green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Lorem ipsum dolor sit.</div>
<div class="block">Aliquam similique, ad explicabo.</div>
<div>Voluptatem recusandae numquam, pariatur?</div>
<div class="block">Accusantium repellendus deleniti, animi.</div>
<div>Neque eum vitae amet.</div>
jsFiddle:https://jsfiddle.net/azizn/hsjs3hjc/
P.S我建议更具体地说明你的div以避免意外结果,例如,捕获divs
容器内的所有#myGroup
。
答案 2 :(得分:0)
您可以使用选择器div
获取没有课程block
的所有div:not(.block)
。这看起来像这样:
$("div:not(.block)").each(function() {
$(this).append('<small class="appearOnHover">Available</small>');
});
对于出现和消失的效果,我建议使用CSS:
.appearOnHover {
display: none;
}
div:hover > .appearOnHover {
display: inline;
color: green;
}
由于我是纯粹的js粉丝,这里也是纯javascript的解决方案:
var divs = document.querySelectorAll("div:not(.block)");
for (var i = 0; i < divs.length; i++) {
var el = document.createElement("small");
el.innerHTML = "Available";
el.className = "appearOnHover";
divs[i].appendChild(el);
}
答案 3 :(得分:0)
为什么不改变这样的条件?
$('td').mouseover(function() {
if($(this).hasClass('block'))
$(this).append('<small style="color:green">Available</small>');
}).mouseout(function() {
$(this).find('small').remove();
});