将Document.write()与对象一起使用以在HTML

时间:2019-04-02 02:58:23

标签: javascript

我正在尝试在JavaScript中使用document.write()方法使用对象<p>编写带有you标签的句子。我试图将一个句子连接起来,例如下面的示例,但是它将对象打印在另一行上。

我需要它来使同一行中的所有内容组成一个适当的句子,并能够创建包含多个句子的段落。

尝试

var you = {
  firstName: 'John',
  lastName: 'Doe',
  age: '32'
};

document.write("<p>Hello my name is "</p> + firstName + " " + lastName)

4 个答案:

答案 0 :(得分:0)

<p>元素是块元素,它会自动创建一个类似的中断。您应该使用<span>。并且还从firstName对象访问lastNameyou,否则它们将引发错误

var you = {
  firstName: 'John',
  lastName: 'Doe',
  age: '32'
};

document.write("<span>Hello my name is </span>" + you.firstName + " " + you.lastName)

答案 1 :(得分:0)

根据您的要求,您可以使用Template Literals

请注意,没有Babel之类的编译器不支持IE

var you = {
  firstName: 'John',
  lastName: 'Doe',
  age: '32'
};

document.write(`<p>Hello my name is ${you.firstName} ${you.lastName}</p>`);

答案 2 :(得分:0)

首先,您似乎有一个错字,我认为这会引起一些问题。

document.write("<p>Hello my name is "</p> + firstName + " " + lastName);

在上面的行中,"</p>的错误一侧,因此</p>在字符串之外,并且在解析时会引起问题。另外,您应该将变量称为you.VARIABLE_NAME,例如you.lastName

此外,如果您希望将整行放在同一段落中,那么在构建字符串时,只需将结束段落移到末尾即可。像这样:

document.write("<p>Hello my name is " + you.firstName + " " + you.lastName + "</p>");

如果要在同一段落中编写多行,则可以将所有内容都放在同一行代码中,如下所示:

document.write("<p>Hello my name is " + you.firstName + " " + you.lastName + " and I'm " + you.age + " years old." + "</p>");

或者您可以将其分隔在几行不同的代码中,以使其更易于阅读和遵循,如下所示:

document.write("<p>");
document.write("Hello my name is " + you.firstName + " " + you.lastName);
document.write("and I am " + you.age + " years old.")
document.write("</p>")

编辑: 您可能还想尝试模板字符串。如果您对字符串使用`而不是'",则可以通过将它们包装在${}中来引用字符串中的变量,如下所示:

document.write(`Hello my name is ${you.firstName} ${you.lastName} and I'm ${you.age} years old.`)

只是一个想法!您可以在此处阅读有关模板字符串的更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

此外,还有比document.write更好的方法来向页面添加文本。这是一个可能有用的简单指南: https://www.w3schools.com/js/js_output.asp

答案 3 :(得分:0)

您正在关闭<p>,并且报价组无效。您可以像这样使用模板文字:

var you = {
  firstName: 'John',
  lastName: 'Doe',
  age: '32'
};

document.write(`<p>Hello my name is ${you.firstName} ${you.lastName}</p>`);

ES5语法:

var you = {
  firstName: 'John',
  lastName: 'Doe',
  age: '32'
};

document.write("<p>Hello my name is " + you.firstName + " " + you.lastName + "</p>");