css应用于数组中的所有元素

时间:2017-12-06 18:52:29

标签: jquery foreach each

当我运行此功能时,CSS将应用于所有按钮。如何进行修改,以便仅针对buttonAttr属性等于禁用的按钮修改CSS?

$('.product_tile .addtocartbutton').each(function(){
    var $this = $(this);
    var buttonAttr = $this.attr('disabled');

    if($this.attr('disabled') = 'disabled'){
        $this.css('background','#ccc');     
    } else {
        $this.css('background','#EEDED1');
    }   
});

4 个答案:

答案 0 :(得分:3)

您不应使用@Override public void onBindViewHolder(final RecyclerViewHolder holder, final int position) { final Note note = noteList.get(position); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // The note and noteList can be accessed here. } }); } 函数检查布尔属性。请改用attr来返回实际值。

prop

答案 1 :(得分:2)

您需要两个或三个等号才能进行比较。

 if($this.buttonAttr == 'disabled')

答案 2 :(得分:1)

不需要编写长代码只需使用此

 $(':button[disabled="disabled"]').css('background','#ccc');

$('.product_tile .addtocartbutton :button[disabled="disabled"]')).css('background','#ccc');

取决于您的方案。
使用:按钮适用于按钮和输入类型="按钮"

答案 3 :(得分:0)

我建议这个小修改;

$('.product_tile .addtocartbutton').each(function(){
    var $this = $(this);

    if($this.is(":disabled")){
        $this.css('background','#ccc');     
    } else {
        $this.css('background','#EEDED1');
    }   
});

这利用了jquery :disabled选择器link来提供文档。

编辑: 另一种选择是单独的CSS解决方案,利用attribute selector

input[type='button'] {
  background: #eeded1;
}

input[type='button'][disabled] {
  background: #ccc;
}
<input type='button' value='Disabled' disabled='disabled' /><br /><br />
<input type='button' value='Active' />