如果我点击.leftcol中的某些SOME TEXT项目,我想这样做,它会使具有相同第二类的.rightcol项目变为红色。
但我需要在一个独特的函数中,所以应该用代码检测第二个类。
我无法弄清楚如何完成脚本:
$(document).ready(function() {
$('.leftcol DETECT SECOND CLASS').click(function() {
$('.rightcol DETECT SECOND CLASS').css('color', 'red');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="leftcol aerospace-defense">SOME TEXT</li>
<li class="leftcol business-enablement">SOME TEXT</li>
<li class="leftcol cardiology">SOME TEXT</li>
<li class="leftcol cell-biology">SOME TEXT</li>
<li class="rightcol aerospace-defense" style="color: red;">Aerospace & Defense</li>
<li class="rightcol business-enablement" style="color: red;">Business Enablement</li>
<li class="rightcol cardiology" style="color: red;">Cardiology</li>
<li class="rightcol cell-biology" style="color: red;">Cell Biology</li>
答案 0 :(得分:1)
这里的技巧是使用leftcol
类捕获任何元素的click事件,然后在$(this).attr("class").split(' ')[1]
的帮助下阅读该元素的第二个类:
$(document).ready(function(){
$('.leftcol').click(function() {
var secondClass = $(this).attr("class").split(' ')[1]
$('.rightcol.' + secondClass).css('color', 'blue');
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="leftcol aerospace-defense">SOME TEXT</li>
<li class="leftcol business-enablement">SOME TEXT</li>
<li class="leftcol cardiology">SOME TEXT</li>
<li class="leftcol cell-biology">SOME TEXT</li>
</ul>
<ul>
<li class="rightcol aerospace-defense" style="color: red;">Aerospace & Defense</li>
<li class="rightcol business-enablement" style="color: red;">Business Enablement</li>
<li class="rightcol cardiology" style="color: red;">Cardiology</li>
<li class="rightcol cell-biology" style="color: red;">Cell Biology</li>
</ul>
&#13;
答案 1 :(得分:1)
您可以使用属性包含选择器.split()
,.pop()
$(document).ready(function() {
$('.leftcol').click(function() {
$('.rightcol[class*=' + this.className.split(" ").pop() + ']')
.css('color', 'blue');
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="leftcol aerospace-defense">SOME TEXT</li>
<li class="leftcol business-enablement">SOME TEXT</li>
<li class="leftcol cardiology">SOME TEXT</li>
<li class="leftcol cell-biology">SOME TEXT</li>
</ul>
<ul>
<li class="rightcol aerospace-defense" style="color: red;">Aerospace & Defense</li>
<li class="rightcol business-enablement" style="color: red;">Business Enablement</li>
<li class="rightcol cardiology" style="color: red;">Cardiology</li>
<li class="rightcol cell-biology" style="color: red;">Cell Biology</li>
</ul>
&#13;
答案 2 :(得分:1)
您可以在类属性
上使用split
方法
$('.leftcol').click(function() {
var secondClass = $(this).attr('class').split(' ')[1];
$('.' + secondClass).css('color', 'red);
});
答案 3 :(得分:1)
当单击类.right
且匹配第二类的元素时,此函数将找到具有类.left
的元素的第二类的每个实例。通过分别更改.left
和.right
类,此功能可应用于HTML布局。
$(function() {
$('.left').on('click', function(e) {
var self = this;
var cat = self.classList.item(1).toString();
$('.right').each(function() {
if ($(this).hasClass(cat)) {
$(this).css('color', 'red');
}
});
});
});
&#13;
table,
th,
td {
border: 1px solid black;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class='categories'>
<caption>Categories</caption>
<thead>
<tr>
<th>Description</th>
<th>Category</th>
</tr>
</thead>
<tbody>
<tr>
<td class='left astronomy'>DATA</td>
<td class='right astronomy'>Astronomy</td>
</tr>
<tr>
<td class='left zoology'>DATA</td>
<td class='right zoology'>Zoology</td>
</tr>
<tr>
<td class='left psychology'>DATA</td>
<td class='right psychology'>Psychology</td>
</tr>
<tr>
<td class='left zoology'>DATA on Zoology</td>
<td class='right astronomy'>Astronomy</td>
</tr>
<tr>
<td class='left astronomy'>DATA on Astronomy</td>
<td class='right psychology'>Psychology</td>
</tr>
<tr>
<td class='left psychology'>DATA on Psychology</td>
<td class='right zoology'>Zoology</td>
</tr>
</tbody>
</table>
&#13;
答案 4 :(得分:0)
很少有建议:
ul
中,其中包含课程<ul class="leftcol">
和<ul class="rightcol">
click
事件处理程序可以附加到左侧列表项,右侧列表可以控制,如下面的示例所示:
$(document).ready(function() {
$(".leftcol li").click(function(event) {
// Get the `class` of clicked element in the left-list
var myClass = $(this).attr('class');
// Default the right-list style
$(".rightcol li").css({
"color": "red"
});
// Check if any list item on the right-side has the same class and action it based on that.
var rightColumnSelector = ".rightcol li." + myClass;
$(rightColumnSelector).css({
"color": "green"
});
});
});
.leftcol,
.rightcol {
display: inline-block;
width: 40%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="leftcol">
<li class="aerospace-defense">aerospace-defense</li>
<li class="business-enablement">business-enablement</li>
<li class="cardiology">cardiology</li>
<li class="cell-biology">cell-biology</li>
</ul>
<ul class="rightcol">
<li class="aerospace-defense" style="color: red;">Aerospace & Defense</li>
<li class="business-enablement" style="color: red;">Business Enablement</li>
<li class="cardiology" style="color: red;">Cardiology</li>
<li class="cell-biology" style="color: red;">Cell Biology</li>
</ul>