【发布时间】:2019-03-15 21:42:57
【问题描述】:
我如何将样式应用于 div仅当两个变量在该 div 中匹配?
我认为我错误地使用了 jQuery .each() 方法。
我的目标是根据两个元素的匹配文本仅对第一个 div.main 应用颜色更改。变量a 和b 匹配第一个div.main。这些变量在第二个div.main 中不匹配。
但我得到的不是第一个 div.main 的颜色变化,而是“no matches exist”。
我不是在问如何简单地将样式分配给 div。我在问只有当 div 中的两个元素的文本匹配时如何设置 div 的样式。
提前感谢您的帮助!
https://jsfiddle.net/md32/ue1t3pov/35/
<div class="main">
<a>
<span>make this red</span>
</a>
<div class="section">
<div></div>
<ul>
<li>make this red</li>
</ul>
</div>
</div>
<div class="main">
<a>
<span>don't make this red</span>
</a>
<div class="section">
<div></div>
<ul>
<li>again, don't make this red</li>
</ul>
</div>
</div>
var a = $('div.main a span').text();
var b = $('div.section ul li').text();
$('div.main').each(function() { // for each 'div.main'
if (a === b) { // if these two variables match
$(this).css('color','red'); // color 'div.main' red
} else {
alert('no matches exist');
}
});
【问题讨论】:
标签: jquery variables if-statement