【问题标题】:prototype programmatic style sheet原型程序样式表
【发布时间】:2014-11-25 15:02:40
【问题描述】:

请原谅我的天真,但我已经定义了样式,单击按钮后,我想为元素分配样式。目标元素是"msg00",我无法确定要选择哪个属性来分配所需的样式表。 $$('id="msg00"').style="start"; 已知错误。另外,这在 jQuery 中会有什么不同?我可以迁移到哪个位置。

【问题讨论】:

  • 您是在问如何将 CSS 类 添加到元素中?你是如何定义风格的?
  • @FelixKling 我在问如何选择一个元素并为其分配一个定义的内部样式表。我以前使用过 $("elementName").attribute 。首先,我想知道在页面加载后分配新样式表的语法。其次,我想知道搜索参数化元素然后分配属性的语法。
  • @cp。 - 样式表是所有样式的完整定义——所有元素。它几乎就像加载的实际css 文件。您可以更改单个元素的样式,而无需交换整个 css 文件。
  • 我们更倾向于在元素上添加一个类,以便将其移动到现有 CSS 规则的覆盖范围内
  • 是的,样式表是您创建的整套 CSS 规则。您不会将样式表分配给元素。样式表被加载到文档中,特定规则通过选择器与元素相关联。真的不清楚你在问什么。

标签: javascript css prototypejs


【解决方案1】:

$$('id="msg00"') 是错误的语法。通过 ID 查找单个元素的首选方法是使用 $

$('msg00') // returns a single element

按属性查找元素的一般方法是使用attribute selector。但这会返回一个数组,因此您无法直接访问它的 style 属性或任何其他属性。您将不得不求助于任何ArrayEnumerable 方法。

$$('[id=msg00]') // returns an array of elements

现在要为找到的元素指定样式,您可以使用方便的Element#setStyle 方法。

$('msg00').setStyle({
    backgroundColor: 'red'
});

作为一个例子,这里的效果相同,但对所有 msg* 元素。

// this selector means an ID which starts with "msg"
$$('[id^=msg]').invoke('setStyle', {
    backgroundColor: 'red'
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    相关资源
    最近更新 更多