我正在编写一些代码,发现这很烦人,经过一番研究后找不到答案。尽管效果很好,但必须写三遍this.className
感觉很笨拙:
this.className != 'selected' ? this.className = 'selected' : this.className = 'unselected';
我发现这可行。
this.className = (this.className != 'selected') ? 'unselected' : 'selected';
..但是我想知道是否有可能实现相同的功能,但是this.className
只写了一次,类似于以下内容:
this.className = 'selected' ? 'unselected' : 'selected';
接受任何建议。
答案 0 :(得分:3)
...但是我想知道是否有可能实现相同的功能,但是this.className只写一次,类似于此
不,您不能那样做,在通常情况下,第二个选择就差不多了
this.className = (this.className != 'selected') ? 'unselected' : 'selected';
您的第三个选项将导致始终 设置'unselected'
,因为'selected'
是真实的,因此第二个操作数('unselected'
)的值始终为结果。
当然,要了解有关DOM元素和类的细节:您始终可以只拥有一个selected
类并对其进行切换(也许通过this.classList.toggle('selected')
)。没有该类相当于拥有unselected
类。
答案 1 :(得分:0)
第二个是最好的选择
public function wishlist(){
return $this->hasMany(Wishlist::class);
}
第三错!
答案 2 :(得分:0)
如果您发现自己经常这样做,则可以随时编写一种方法
function switchProperty(obj, prop, test, flip){
obj[prop] = obj[prop] == test ? flip : test;
}
var myObj = {
foo:"bar"
}
console.log(myObj.foo);
switchProperty(myObj,'foo', 'bar', 'baz');
console.log(myObj.foo);
switchProperty(myObj,'foo', 'bar', 'baz');
console.log(myObj.foo);
您的使用情况将是
switchProperty(this,'className','selected','unselected');
答案 3 :(得分:0)
状态和类名称与imo不同。
关于存储状态的变量呢?
this.isSelected = !this.isSelected;
this.className = (this.isSelected ? 'un' : '') + 'selected';