2017-10-10 69 views
1

我试图改变每次点击按钮的颜色。在我的代码中,linkNumber会得到一个值。我想给它一个颜色。我做的方式不起作用。我对警报进行了测试,以确保值和它正在工作。如何给jQuery中的变量赋予样式?

var linkNumber = $(this).text(); 
       $(linkNumber).css("color", "yellow"); 
       alert(linkNumber); 
+0

'$(本)的.text();'只给你回什么文字是你选择的标签内,如果'$(本)'代表一个按钮,删除' .text()'部分,从'$(linkNumber).css'中移除jQuery标签,并检查它是否可用 – Lixus

回答

2

看来你试图在文本本身设置颜色。文字不能有颜色。 集装箱(标签)可以有css。所以只需将css颜色设置为容器。

$(this).css('color', 'yellow'); 
+0

是的。但它着色了所有的价值。它如何只为选定的颜色着色? – ilovejava

+1

@ilovejava'$(this)'不应该返回多个元素。你打电话过得怎么样?你可以把所有的代码放入问题中吗?最佳[mcve] –

0

这里有几个按钮改变颜色的活生生的例子:

var colors = ["yellow", "red", "blue"]; 
 

 
$(document).ready(function() { 
 
    $("button").click(function() { 
 
    var currentIndex = Number($(this).data("ci")) || 0; 
 
    var nextIndex = (currentIndex + 1) % colors.length; 
 
    $(this).data("ci", nextIndex).css("color", colors[nextIndex]); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button>Button 1</button> 
 
<button>Button 2</button> 
 
<button>Button 3</button>

在第一次点击,按钮被假定为目前拥有colors[0]。数组索引递增并存储在按钮中,然后将颜色分配给它。

+0

好的。如果我只想要一种颜色,该怎么办?当我点击时颜色会发生变化。例如,如果有3个按钮。如果我点击按钮1,它会变成红色,其他两个保持不变。如果我点击按钮2,它会变红并且保持不变。 – ilovejava

0

在这个例子中,点击按钮时,如果你想改变你必须使用的按钮里面的文本的颜色,那么按钮的背景颜色将会改变。color:cyan; insted的背景色:青财产

CSS

.clickme{ 
background-color:cyan; 
color:White; 
} 

HTML

<button class="clickme">button1</button> 
<button class="clickme">button2</button> 
<button class="clickme">button3</button> 

jQuery函数用于掣子元件

$(".clickme").click(function(){ 
$(this).css("background-color","green"); 
}); 

Here is the Working fiddle

0

您可以直接追加风格this.style.color = 'yellow';

我同样会建议对目前使用jQuery。

Array.from(document.querySelectorAll('button')) 
 
    .forEach(button => (button.addEventListener('click', (e) => { 
 
    e.target.style.color = 'red'; 
 
    })));
<button>button1</button> 
 
<button>button2</button>