Javascript多行命令

时间:2013-09-23 11:10:29

标签: javascript

在JavaScript中,是否可以编写如下的多行语句;

document.getElementById("ID").innerHTML = "Something"; 
                            .style.display = "some";
                            .style.color = "#CCC";

希望你有想法?

4 个答案:

答案 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";