Javascript 如何在单行中提及所有属性

Javascript 如何在单行中提及所有属性,javascript,attributes,Javascript,Attributes,如何在单行中提及所有属性:) 使用JavaScript,您不能在一行中完成;不过,您可以将其缩写为两个: 不过,老实说,我不确定你会得到什么 当然,如果您选择了效率(尽管是一种微优化),您可以通过缓存document.getElementById()的结果再次返回到三行: 在大多数(如果不是全部)浏览器中,可以使用浏览器分配的自动全局变量,将对具有id属性的元素的引用映射到该名称的变量(具有id=“image”的元素在全局变量image下可用): 然而,值得注意的是,虽然automagic

如何在单行中提及所有属性:)


使用JavaScript,您不能在一行中完成;不过,您可以将其缩写为两个:

不过,老实说,我不确定你会得到什么

当然,如果您选择了效率(尽管是一种微优化),您可以通过缓存
document.getElementById()的结果再次返回到三行:

在大多数(如果不是全部)浏览器中,可以使用浏览器分配的自动全局变量,将对具有
id
属性的元素的引用映射到该名称的变量(具有
id=“image”
的元素在全局变量
image
下可用):

然而,值得注意的是,虽然automagic变量是一种可能性,但它们的使用是不可取的:全局变量,特别是在大型代码库或具有多个贡献者的情况下,容易出错和误用。并且,正如下面的评论所指出的,它们的使用已经或可能已经被弃用(参考:)

以上所有内容均与以下HTML一起使用:

<img src="" id="image" />

使用:

或使用:


您还可以在元素中保存一个白色变量,这样就不必每次都执行document.getElementById

var img = document.getElementById("image");
img.src = "landscape.jpg";
img.width = img.height = "300";
您也可以在以后的一行中创建一个函数

function setValues(element, props){
    for(var key in props){
        element[key] = props[key];
    }
}

setValues(document.getElementById("image"), {src: "landscape.jpg", width:"300", height:"300"});

如果您需要进行大量dom操作,可以考虑使用jQuery和zepto之类的框架,但如果这是您唯一需要更改的内容,那么这就太过分了。

不同意建议使用“automagic全局变量”。这种用法被广泛反对。请不要误解我,我提到的可能性并不是我推荐的做法;我很高兴看到这种可能性的背后。不要建议将
一起使用。在其他问题中,严格模式不支持它。此外,如果问题没有提到jQuery或没有指定jQuery标记,则不应使用jQuery解决方案回答,除非OP通过评论确认他或她可以接受jQuery方法。
image.src = "http://lorempixel.com/200/200/nightlife/3";
image.width = image.height = "300";
<img src="" id="image" />
with(document.getElementById("image")) { src = "landscape.jpg"; width = "300"; height = "300"; }
$("#image").attr("src", "landscape.jpg").width(300).height(300);
// or
$("#image").attr("src", "landscape.jpg").attr("width": "300").attr("height": "300");
// or
$("#image").attr("src", "landscape.jpg").css({ "width": "300px", "height": "300px" });
var img = document.getElementById("image");
img.src = "landscape.jpg";
img.width = img.height = "300";
function setValues(element, props){
    for(var key in props){
        element[key] = props[key];
    }
}

setValues(document.getElementById("image"), {src: "landscape.jpg", width:"300", height:"300"});