2017-05-27 27 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。但當然,這是可選的。