当前位置: 首页 > 知识库问答 >
问题:

用javascript更改DOM元素的多个属性

刁跃
2023-03-14

我有一个名为loadstyles()的简单函数:

function loadStyles(url) {
        var link = document.createElement('link');
        link.rel = 'stylesheet';
        link.type = 'text/css';
        link.href = url;
        link.media = 'all';
        (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(link);
}

我想知道除了这个以外,是否还有其他方法可以添加某些属性的值:link.rel等于...link.type等于...等。

我试过这样的方法:

function loadStyles(url) {
    var link = document.createElement('link');
    link += {
        rel: 'stylesheet',
        type: 'text/css',
        href: url,
        media: 'all'
    };
    (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(link);
}

但那行不通。我知道尝试它可能是愚蠢的(因为我的IDE说这个{....}表达式不能分配给类型HTML元素^^')。

共有1个答案

宇文念
2023-03-14

我认为JavaScript标准中什么都没有。

但是你可以用这样的函数

function setAttributes(element, attributes) {
  for (var name in attributes) {
    element.setAttributes(name, attributes[name]);
  }
}

function loadStyles(url) {
    var link = document.createElement('link');
    setAttributes(link, {
        rel: 'stylesheet',
        type: 'text/css',
        href: url,
        media: 'all'
    });
    (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(link);
}

我没有测试过,但应该能用。

 类似资料:
  • 问题内容: 我具有以下功能,当触发该功能时,DIV将变为半透明。 但是,我希望此功能可同时应用于多个DIV。我尝试为每个DIV赋予相同的类名,然后使用,但不知道如何实现它。 会更合适,如果可以的话,我将如何实施呢? 问题答案: 我将使用querySelectorAll选择它们并在它们上循环。 编辑:正如上面的评论所述,如果这些值不是动态的并且使用,则最好将这些值放在类中:

  • 问题内容: 如何使用WebDriverWait等待属性更改? 在我的AUT中,我必须等待按钮被启用后才能继续,但是不幸的是,由于开发人员对页面进行编码的方式,我无法使用WebElement的isEnabled()方法。开发人员正在使用一些CSS来使按钮看起来像已禁用,因此用户无法单击它,并且isEnabled方法始终为我返回true。因此,我要做的就是获取属性“ aria-disabled”,并检

  • 问题内容: 我有一个div的特定样式表。现在我想使用js动态修改div的一个属性。 我该怎么做? 它是否正确? 问题答案: 几乎是正确的。 由于是JavaScript操作符,因此您实际上不能在属性名称中使用它。如果您正在设置,或者类似的单字,您的代码就可以正常工作。 但是,对于任何带连字符的属性名称,您都需要记住的是,在javascript中,您删除了连字符,并使下一个字母变为大写,因此应为。 还

  • 如何使用WebDriverWait等到属性更改? 在我的AUT中,我必须等待一个按钮被启用后才能继续,不幸的是,由于开发人员编码页面的方式,我不能使用WebElement的isEnabled()方法。开发人员正在使用一些CSS来使按钮看起来像是被禁用的,这样用户就不能点击它,并且方法isEnabled对我来说总是返回true。所以我要做的就是获得属性“aria-disabiled”,检查文本是“t

  • 如何使用JavaScript同时设置多个属性?不幸的是,我不能在这个项目中使用像jQuery这样的框架。以下是我现在拥有的:

  • 问题内容: 如何使用JavaScript 响应事件来更改HTML元素的类? 问题答案: 更改类的现代HTML5技术 现代浏览器添加了 classList , 该类 提供了一些方法,可以在不需要库的情况下更轻松地操作类: 不幸的是,尽管有一些垫片可以将其支持添加到IE8和IE9中,但这些功能在v10之前的Internet Explorer中无法使用。但是,它越来越受到支持。 简单的跨浏览器解决方案