2017-05-27 29 views
-2

所以,我有以下的HTML代码:如何有JS功能投入AP标签在HTML的输出

<!DOCTYPE html> 
<html> 
<head> 
    <link type="text/javascript" href="FileContainingJS"> 
</head> 
<body> 
    <p id="Stuff"></p> 
</body> 
</html> 

而下面的JS代码:

function HelloWorld() { 
    return "Hello World"; 
} 

我想要的HelloWorld函数的结果放在p标签中(产生一个带有“Hello World”的段落。任何帮助将不胜感激:) PS忽略不重要的语法错误,因为我冲过来的xD

+0

该过程称为DOM操作。请谷歌和检出Javascript DOM API并发布您尝试的解决方案。 – iamkhush

+0

我试过使用document.getElementById('stuff')。innerHTML = HelloWorld()没有成功。 –

+0

@FrankieD。因为ID是'Stuff',大写'S'。 –

回答

0

你可以做到这一点通过执行以下操作:

function HelloWorld() { 
    document.getElementById('Stuff').innerHTML = 'Hello World'; 
} 
0

这就是所谓的DOM操作。插入文本“Hello World”(或任何文本),最简单的方式将与.innerHTML

var result = HelloWorld(); 
document.getElementById("Stuff").innerHTML = result; 
0

这就是所谓的DOM操作 - 为他人提及。你所做的是,你是否将一个JavaScript对象表示为HTML文档中的一个元素,然后修改一个属性或调用一个方法来操纵它。

在这里,您想更改其中的文字。 innerHTML属性允许您将p标记中的HTML设置为任何你想要的。这是你的第一选择。

您的第二个选择是使用textContent属性,现在它的工作方式类似于innerHTML属性,但它避免了像XSS攻击这样的问题:您无法使用此属性注入HTML。

由于上述安全优势,我推荐第二个选项。

现在,让我们找到获取表示段落元素的对象的方法。你要这样做的方法是取一个现有的对象,代表整个文档,然后使用方法选择它的一个孩子。

该预先存在的内置于JavaScript的对象是document。现在,要获取具有特定ID的元素,可以调用其方法getElementById(id)。这是我推荐的方法。

其他方法来抓取您的段落对象可能是getElementByQuerySelector(cssSelector)这需要一个CSS选择器(在这种情况下,#stuff

这样,最终的解决办法是:

document // our whole document 
     .getElementById("Stuff") // just our paragraph 
           .textContent // what's inside it 
              = helloWorld() // result of funct. 

在一条线,这看起来像

document.getElementById("Stuff").textContent = helloWorld(); 

的注意事项,以及:

  • 与资本开始您的ID信是不寻常的。在JavaScript中,人们通常使用camelCase编写,其中第一个单词以小写字母开头,后面的每个单词都以大写字母开头(例如iLikeToEatCows)。有了这种一致性,程序员就可以听到“好的,所以ID是myparagraph”,并且能够以相当确定的方式编写myParagraph。但当然,这是可选的。