2013-03-16 127 views
0

我有一個文本框和一個按鈕。當我點擊按鈕時,在jQuery中使用append()方法將文本框內容追加到<body>。此外,在追加時,我試圖將style(即border-style)設置爲我要追加的標籤。下面的代碼並沒有做什麼,我希望:無法在jQuery.append()中設置標籤樣式?

<style> 
.myStyle{ 
    border-style:solid; 
} 
</style> 

<script> 
$(document).ready(function() 
    $("#btn2").click(function(){ 
     var text=document.getElementById('txt1').value 
     $("body").append("<br><label class="myStyle">"+text+"</label>"); 
    }); 
}); 
</script> 
<input id="txt1" type="text"> 
<button id="btn2">Append list items</button> 

添加<div>標籤在append部分也無濟於事。下面呢,但第一labelbox沒有得到保證金:

<script> 
$(document).ready(function() 
    $("#btn2").click(function(){ 
     var text=document.getElementById('txt1').value 
     $("label").css("border-style","solid"); 
     $("body").append("<br><label>"+text+"</label>"); 
    }); 
}); 
</script> 
<input id="txt1" type="text"> 
<button id="btn2">Append list items</button> 

什麼是與append() -ing和造型元素的交易嗎?我錯過了什麼?

+2

我推薦閱讀[本文](http://www.netmagazine.com/tutorials/javascript-debugging-beginners)以瞭解如何調試JavaScript。語法錯誤很容易被檢測到,因爲瀏覽器會告訴你。關於問題的第二部分:'$(「label」).css(「border-style」,「solid」);'選擇所有**現有**標籤'元素並更改它們的'border-style'屬性。它不影響*之後創建的任何'標籤'元素*。 – 2013-03-16 09:23:37

+0

沒錯。使用鏈接,我將如何在單行中實現相同的效果? – 2013-03-16 09:32:37

回答

3
$("body").append("<br><label class="myStyle">"+text+"</label>"); 
//---------------^-----------------^ 
// These are the same type of quotes 

$("body").append('<br><label class="myStyle">'+text+'</label>'); 
//---------------^---------------------------^------^--------^ 
// Swap these four out with single quotes 

你應該注意到在你的語法突出顯示中,myStyle變黑,顯示字符串中斷。
另外我建議一個更好的編輯器,如果你目前的人沒有向你顯示這樣的錯誤。我個人使用WebStorm/PHPStorm。

另外,如果你打算使用jQuery,那麼使用jQuery。

var text = $('#txt1').val(); 
+0

是的,得到了​​我的問題的癥結。但是,我注意到用你的代碼,沒有任何東西出現(在瀏覽器中)。但是,將其更改爲: '$(「body」)。append('
');'似乎顯示我想要的。單引號是如何工作的? – 2013-03-16 09:26:40

+0

不 - 不應該這樣。你100%確定嗎?確保將所有4個雙引號更改爲單引號。 – ahren 2013-03-16 09:27:13

+0

@black_stallion:這會直接顯示單詞「text」,而不是顯示您賦予值的「text」變量的值。 ahren的代碼顯示了存儲在「text」中的值。 – 2013-03-16 09:29:19