2013-03-16 129 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