在 JavaScript 中,是否可以编写如下所示的多行语句;
document.getElementById("ID").innerHTML = "Something";
.style.display = "some";
.style.color = "#CCC";
希望你有这个想法?
在 JavaScript 中,是否可以编写如下所示的多行语句;
document.getElementById("ID").innerHTML = "Something";
.style.display = "some";
.style.color = "#CCC";
希望你有这个想法?
不,你不能这样写,但可以使用:
var obj = document.getElementById("ID");
obj.innerHTML = "Something";
obj.style.display = "some";
obj.style.color = "#CCC";
因为要在 javascript 中调用任何属性,都需要您要在其上应用该属性的对象。
带入document.getElementById("ID")
一个变量。
像
var eleId = document.getElementById("ID");
eleId.innerHTML = "Something";
eleId.style.display = "some";
eleId.style.color = "#CCC";
好吧,这一切都取决于,在你提供的示例中,你不能这样做,你只能在调用一个也返回函数的函数时这样做,一个很好的例子是 jQuery,让我们看看。
$('#something') // <-- select a element - returns a whole object of functions
.hide() // hide function was returned
.show() // show function was returned
.css(...);
在您的示例中,您设置的字符串实际上已返回。
这就是创建链接函数的方式。
var test = function( name ) {
this.name = name;
return this;
};
test.prototype.viewName = function() {
console.log(this.name);
};
test.prototype.showName = function() {
alert(this.name);
return this;
};
var john = new test('john');
john.showName().viewName();
所以在你的情况下,你将不得不存储对象
var element = document.getElementById("ID");
element.innerHTML = "Something";
element.style.display = "some";
element.style.color = "#CCC";
所以这一切都取决于你最后一次行动的回报。
嗯,它是,但不是你的情况。
当您一次又一次地调用多个返回相同 obj 的函数时,例如在 jQuery 中,这是可能的:
$('#el').fadeIn().fadeOut();
它被称为Cascade
(好吧,Douglas Crockford 这么称呼它,你可以在他的书中找到它Javascript: The Good Parts
)
在您的情况下,您不能这样做(至少使用 vanilla javascript)。
var el = document.getElementById("ID")
el.innerHTML = "Something";
el.style.display = "some";
el.style.color = "#CCC";