2013-02-04 23 views
1

http://jsfiddle.net/6yjRL/改變兩個標籤同時

HTML

<html> 
    <body> 
     <label id="num1label"/> 
     + 
     <label id="num2label" /> 
    </body> 
</html> 

JS

var num1 = Math.floor((Math.random() * 10) + 1); 
var num2 = Math.floor((Math.random() * 10) + 1); 

$(function() { 
    $("#num1label").text(num1);    
    $("#num2label").text(num2); 
}); 

我期望的結果是表示 「5 + 2」 例如是文本。但是隻有一個標籤更改值,「+」由於某種原因被刪除。

+1

請記住,['

回答

5

錯誤的元素,糟糕的標記。使用:

<html> 
    <body> 
     <span id="num1label"></span> 
     + 
     <span id="num2label"></span> 
    </body> 
</html> 

您的代碼失敗,因爲<label>標記不是自閉的;原諒的瀏覽器認爲它們應該嵌套,並且你忘記了結束標籤,所以它會以這種方式渲染它們。

但是,<label>標籤用於提供輸入元素的註釋。正確使用它,它必須與<form>元素關聯,無論是作爲後代還是通過form屬性(HTML5)。對於聯機文本,您可以()使用<span>元素。

+0

http://jsfiddle.net/6yjRL/6/ – nbrooks

+0

事實上,這是正確的。我可以接受你的答案(在10分鐘內) –

0

你的HTML改成這樣

<body> 
     <label id="num1label"></label> 
     + 
     <label id="num2label"></label> 
    </body> 
+0

我知道這個工程,但爲什麼這個工作?爲什麼不會

+1

@Tjirp由於''。問題是,當瀏覽器看到兩個連續的「未關閉」元素時,它會在第一個內嵌第二個「'...因此這裏是問題。 – nbrooks

1

不能省略結束標記爲label元素。由此產生的標記不是你的想法。