当我在func Difference(slice1 []string, slice2 []string) []string {
// Create proper "set" (Maps have unordered pairs and the keys are unique;
// lookup to check whether value is present is O(1), similar to other
// implementations)
m := make(map[string]struct{}, len(slice1))
for _, el := range slice1 {
m[el] = struct{}{}
}
// Remove values from slice1 present in slice2
for _, el := range slice2 {
delete(m, el)
}
// Note that res will be non-deterministic: the order of iteration over maps
// is made random on purpose by Go itself
res := make([]string, 0, len(m))
for k := range m {
res = append(res, k)
}
return res
}
中单击 id =“ rollback1” 第一表行中删除类失败 >不从表第二行删除类失败。
img
我尝试过:
<table>
<tr>
<td class="fail">
</td>
<td>
<img id="rollback1"></img>
</td>
</tr>
<tr>
<td class="fail">
</td>
<td>
<img id="rollback2"></img>
</td>
</tr>
</table>
还有:
$("#rollback1").on('click',function(){
$(this).find('.fail').removeClass();
});
仍然无法弄清楚,我如何仅从一行中删除一个类。
答案 0 :(得分:1)
您可以这样做:
$(this).closest('tr').find('td.fail').removeClass('fail');
您可以使用id
并从选择器^=
开始,例如:
$("[id^=rollback]").on('click', function() {
$(this).closest('tr').find('.fail').removeClass('fail');
});
$("[id^=rollback]").on('click', function() {
$(this).closest('tr').find('.fail').removeClass('fail');
});
.fail {
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border=1>
<tr>
<td class="fail">TD 1</td>
<td>
<img id="rollback1" alt="IMAGE 1" />
</td>
</tr>
<tr>
<td class="fail">TD 1</td>
<td>
<img id="rollback2" alt="IMAGE 2" />
</td>
</tr>
</table>
我的建议:我建议以下解决方案之一:
按img
标签定位:
$("table img").on('click', function() {
//Your code
});
改为使用通用类,如:
$(".rollback").on('click', function() {
//Your code
});
然后您的HTML代码必须类似于:
<img class="rollback" id="rollback1" alt="IMAGE 2" />
<img class="rollback" id="rollback2" alt="IMAGE 2" />
答案 1 :(得分:1)
$("#rollback1").on('click',function(){
$(this).parent().find('.fail').removeClass();
});
答案 2 :(得分:1)
如果#rollback2
在第二行做同样的事情,则可以做一些更通用的事情:
$('img[id^="rollback"]').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').find('.fail').removeClass('fail');
});
答案 3 :(得分:1)
closest()方法返回所选元素的第一个祖先。
祖先是父母,祖父母,曾祖父母等等。
find()方法返回所选元素的后代元素。
$(this).closest('tr').find('.fail').removeClass('fail');
答案 4 :(得分:1)
您可以使用parent()
和prev()
来定位元素,如下所示:
$("#rollback1").on('click',function(){
$(this).parent().prev('.fail').removeClass('fail');
// if you have `td` in between use siblings()
//$(this).parent().siblings('.fail').removeClass('fail');
});
.fail{color:red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="fail">11
</td>
<td>
<img id="rollback1" src="" alt="1"/>
</td>
</tr>
<tr>
<td class="fail"> 22
</td>
<td>
<img id="rollback2" src="" alt="2"/>
</td>
</tr>
</table>
答案 5 :(得分:1)
尝试一下:
$("#rollback1").on('click', function() {
$(this).closest('table').find('tr:nth-child(1)').removeClass('fail');
});