我有很多选择选项列表md-is-locked-open="$mdMedia('gt-md')"
,并且在更改其中一个选项列表时,我想对其他操作应用一些操作,除了当前的操作,即触发<select>
事件的活动列表。我遵循以下代码:
change
这里的问题是<select class="ops">
<option>Select</option>
<option value="1">One</otption>
<option value="2">Two</otption>
<option value="3">Three</otption>
<option value="4">Four</otption>
</select>
<select class="ops">
<option>Select</option>
<option value="1">One</otption>
<option value="2">Two</otption>
<option value="3">Three</otption>
<option value="4">Four</otption>
</select>
<select class="ops">
<option>Select</option>
<option value="1">One</otption>
<option value="2">Two</otption>
<option value="3">Three</otption>
<option value="4">Four</otption>
</select>
<select class="ops">
<option>Select</option>
<option value="1">One</otption>
<option value="2">Two</otption>
<option value="3">Three</otption>
<option value="4">Four</otption>
</select>
<script>
$(document).ready(function(){
var basicObj;
$("select.ops").change(function(){
basicObj = $(this);
$("select.ops").each(function(){
if ($(this) !== basicObj){
// do something
$(this).css('color','red');
}
})
})
})
</script>
总是被评估为真,所以,例如,当第一个选择列表发生变化时,它的颜色也变为红色! this code demo
答案 0 :(得分:1)
无法工作的原因:
请注意,jQuery选择器返回所选对象的Jquery集合,这意味着它们在引用相等的意义上永远不会相等。
比较Jquery对象,is()函数
描述:针对选择器,元素或jQuery对象检查当前匹配的元素集,如果这些元素中至少有一个与给定的参数匹配,则返回true。
要检查jquery对象是否等于你应该尝试!$(this).is(basicObj)
<script>
$(document).ready(function(){
$("select").change(function(){
var basicObj = $(this);
$("select").each(function(sel){
debugger;
if (!$(this).is(basicObj)){
// do something
$(this).css('color','red');
}
})
})
})
</script>