标签{ 显示:块; 宽度:156 px; 光标:指针; padding-right: 6 px; padding-bottom: 1 px; } <label for="email">{t _your_email}:</label>

我希望根据'for'属性选择标签来进行布局更改。


选择器应该是label[for=email],所以在CSS中:

label[for=email]
{
    /* ...definitions here... */
}

…或者在JavaScript中使用DOM:

var element = document.querySelector("label[for=email]");

...或者在JavaScript中使用jQuery:

var element = $("label[for=email]");

它是一个属性选择器。注意,一些浏览器(例如IE < 8的版本)可能不支持属性选择器,但最近的一些浏览器支持。遗憾的是,要支持像IE6和IE7这样的老浏览器,你必须使用一个类(好吧,或者其他结构方式)。

(我假设模板{t _your_email}将填充一个id="email"的字段。如果不是,请使用类。)

注意,如果你选择的属性值不符合CSS标识符的规则(例如,如果它有空格或括号,或者以数字开头,等等),你需要在值周围加引号:

label[for="field[]"]
{
    /* ...definitions here... */
}

它们可以是单引号或双引号。


如果内容是一个变量,则需要将其与引号连接起来。这对我很管用。是这样的:

itemSelected(id: number){
    console.log('label contains', document.querySelector("label[for='" + id + "']"));
}

如果标签紧跟在指定的输入元素后面:

input#example + label { ... }
input:checked + label { ... }