代碼的主要問題(您發佈在評論中,我複製到問題中)是它只包含一個函數定義。該函數根本不被調用,所以需要有一個像test()
這樣的語句。此外,該函數假定頁面上有一個元素id=divTxt
,並且該元素必須出現在調用該函數之前。下面的代碼成功地創建一個單選按鈕元素及其標籤,並將其插入到頁面上的現有元素:
<!DOCTYPE html>
<title>Demo</title>
<div id=divTxt></div>
<script>
function test() {
var element = document.createElement("input");
//Assign different attributes to the element.
element.setAttribute('type', 'radio');
element.setAttribute('value', 'source');
element.setAttribute('name', 'source');
element.setAttribute('id', 'source_id');
var foo = document.getElementById("divTxt");
foo.appendChild(element);
var newlabel2 = document.createElement("Label");
newlabel2.setAttribute('for', "source_id");
newlabel2.innerHTML = "first name ";
foo.appendChild(newlabel2);
}
test();
</script>
(不能使用for
屬性在JavaScript中;屬性名是htmlFor
,但它可能是簡單設置for
屬性如前所述)
然而,單選按鈕應該經常成羣出現,由於其性質,所以你應該使用函數與一些參數根據生成一組單選按鈕常見模式。就像這樣:
<!DOCTYPE html>
<title>Demo</title>
<div id=divTxt></div>
<script>
function radio(name, value, text) {
var element = document.createElement("input");
var id = name + value;
element.setAttribute('type', 'radio');
element.setAttribute('value', value);
element.setAttribute('name', name);
element.setAttribute('id', id);
var foo = document.getElementById("divTxt");
foo.appendChild(element);
var newlabel2 = document.createElement("label");
newlabel2.setAttribute('for', id);
newlabel2.innerHTML = text;
foo.appendChild(newlabel2);
}
radio('sex', '0', 'male');
radio('sex', '1', 'female');
</script>
你應該最低限度地添加代碼,增加了換行符項目之間,最好把每一對按鈕和它的標籤一div
elemebt內加強這方面的。
你真的嘗試過了什麼?顯示你找到的一些簡單的選擇,並解釋它在哪種意義上不起作用。 – 2013-04-24 06:28:52
@ JukkaK.Korpela,我試過這段代碼: – 2013-04-24 06:59:06
function test(){ var element = document.createElement(「input」); //爲元素分配不同的屬性。 element.setAttribute('type','radio'); element.setAttribute('value','source'); element.setAttribute('name','source'); element.setAttribute('id','source_id'); var foo = document.getElementById(「divTxt」); foo.appendChild(element); var newlabel2 = document.createElement(「Label」); newlabel2.for =「source_id」; newlabel2.innerHTML =「first name」; foo.appendChild(newlabel2); } – 2013-04-24 06:59:37