在JavaScript中,是否可以编写如下的多行语句;
document.getElementById("ID").innerHTML = "Something";
.style.display = "some";
.style.color = "#CCC";
希望你有想法?
答案 0 :(得分:2)
不,你不能这样写,但可以使用它:
var obj = document.getElementById("ID");
obj.innerHTML = "Something";
obj.style.display = "some";
obj.style.color = "#CCC";
因为要在javascript中调用任何属性,需要使用要应用该属性的对象。
答案 1 :(得分:1)
将document.getElementById("ID")
带入变量。
像
var eleId = document.getElementById("ID");
eleId.innerHTML = "Something";
eleId.style.display = "some";
eleId.style.color = "#CCC";
答案 2 :(得分:0)
这一切都取决于,在你提供的示例中你无法做到这一点,你只能在调用一个函数同时返回一个函数时才这样做,一个很好的例子是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";
所以这一切都取决于你上一次行动的回报。
答案 3 :(得分:0)
嗯,确实如此,但不是你的情况。
当您调用多个函数时,可以反复返回相同的obj,例如在jQuery中:
$('#el').fadeIn().fadeOut();
它被称为Cascade
(嗯,道格拉斯·克罗克福德这样称呼它,你可以在他的书Javascript: The Good Parts
中找到它)
在你的情况下,你不能这样做(至少使用vanilla javascript)。
var el = document.getElementById("ID")
el.innerHTML = "Something";
el.style.display = "some";
el.style.color = "#CCC";