更改活动输入框上的标签颜色
Change label color on active inputbox
有人知道为什么这不起作用吗?我想在输入框处于活动状态时从输入框中更改标签的颜色。
JavaScript:
$("input").focus(function() {
var inputID = document.activeElement.id;
document.getAnonymousElementByAttribute('label','for', inputID).setAttribute('class', 'active');
});
该 HTML:
<label for="username">Username</label>
<input name="username" id="username" type="text"><br>
<label for="passwort">Passwort</label>
<input name="passwort" id="passwort" type="password"><br>
<input type="submit" class="button" value="login">
CSS:
.active{
color: #FFA500 !important;
}
我希望有人可以帮助我:)
使用您当前的 HTML:
$('input').focus(function(){
$(this).prev().addClass('active');
}).blur(function(){
$(this).prev().removeClass('active');
});
JS小提琴演示。
或者,使用 on()
(假设您使用的是 jQuery 1.7 或更高版本):
$('input').on('focus blur', function(e){
var prev = $(this).prev();
prev[e.type == 'focus' ? 'addClass' : 'removeClass']('active');
});
JS小提琴演示。
更抽象(所以HTML结构无关紧要),通过for
属性选择:
$('input').on('focus blur', function(e){
var label = $('label[for="' + this.id + '"]');
label[e.type == 'focus' ? 'addClass' : 'removeClass']('active');
});
JS小提琴演示。
引用:
-
addClass()
. - 属性等于 (
[attribute="value"]
) 选择器。 -
blur()
. -
focus()
. -
on()
. -
prev()
. -
removeClass()
.
$('input').on('click', function(){
$(label).toggleClass('active');
});
你过于复杂的事情,保持简单,有时开发人员最有用的工具是退格键。
尝试input:focus
而不是.active
在 CSS 代码中。也省略!important
。
input:focus{
color: #FFA500;
}
您将 jQuery 函数与非 jQuery 混合使用。尝试只使用 jQuery 函数来处理您的任务。在下面的示例中,我将.focus()
更改为.on('focus',callback)
,这是相同的,但更容易理解。在jQuery中,你应该获取事件的目标,并通过$()
包装它。您也可以使用this
但我出于多种原因尽量不使用它。然后,您可以应用许多jQuery方法中的任何一种:
$("input").on('focus', function(ev) {
var t = $(ev.target);
t.addClass('active');
});
请参阅此处的一个非常基本的示例:http://jsfiddle.net/zn5fB/
在这里,对于事件触发的示例:http://jsfiddle.net/zn5fB/1/
使用 JavaScript 设置样式通常遵循以下格式:
document.getElementById("abc").style.[css property name in camel case] = "[value]";
你会发现使用像jQuery这样的库来使这(以及许多其他事情)变得更容易一点是很常见的。使用 jQuery,您可以编写如下代码:
// find all elements with the tag name "bar" that are direct
// descendants of an element with the class name "foo"
$(".foo > BAR").css("color", "red");
相关文章:
- Chart.js条形图:网格颜色和隐藏标签
- d3.js轴标签-颜色不变
- 将鼠标悬停在切片上时更改d3.js饼图标签的颜色
- 更改聚焦时的标签背景颜色复选框
- 如何使用角度图更改标签的颜色
- JQPLOT 根据标签名称为饼图设置自定义颜色
- 更改经纬网标签的颜色
- 使用Javascript为输入字段添加边框样式颜色(提交时没有值),该字段已经在css中带有!important标签的边
- 标记标签始终打印黑色文本,而不是指定的颜色
- 根据高图表中的列值更改数据标签颜色、旋转和对齐值
- 图表.js更改标签颜色
- 如何使用 jquery 更改标签上的永久颜色
- 更改活动输入框上的标签颜色
- 如何在高图表中更改标签颜色
- Flot:通过多个堆叠条形图在整个屏幕上保持一致的标签颜色
- 更改c3js(c3.js)中的标签颜色
- 使用javascript更改标签颜色时出现问题
- 将甜甜圈图的系列标签颜色改为系列颜色
- Javascript Jquery-更改标签颜色
- 设置拉斐尔图上的标签颜色