Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .addClass()不工作_Javascript_Jquery - Fatal编程技术网

Javascript .addClass()不工作

Javascript .addClass()不工作,javascript,jquery,Javascript,Jquery,这是我第一次使用.addClass() 在我的项目中,我需要在虚拟手机屏幕上显示通知(iPhone的图像)。通知有标题和一些说明。此标题和说明来自同一网页上的表单。要撰写此通知,我正在执行以下操作: var notificationText = $('#title').val().addClass('title') + plainText.addClass("description"); 但是,我得到一个错误: TypeError: $(...).val(...).addClass is no

这是我第一次使用
.addClass()

在我的项目中,我需要在虚拟手机屏幕上显示通知(iPhone的图像)。通知有
标题
和一些
说明
。此
标题
说明
来自同一
网页
上的表单。要撰写此通知,我正在执行以下操作:

var notificationText = $('#title').val().addClass('title') + plainText.addClass("description");
但是,我得到一个错误:

TypeError: $(...).val(...).addClass is not a function
Uncaught TypeError: Object sss has no method 'addClass'
我做错了什么

更新: 因此,根据压倒性的要求,我做了:

var notificationText = $('#title').addClass('title').val() + plainText.addClass("description");
但是,我得到一个错误:

TypeError: $(...).val(...).addClass is not a function
Uncaught TypeError: Object sss has no method 'addClass'


更新2:我不需要设置描述的样式,因此我删除了与之相关的类。请看我的。现在的问题是,
标题
中的文本变得粗体,而不是在
通知
中复制的文本。它没有按照CSS设置样式。

要添加类,必须使用

$('#title').addClass('title');
如果要获取值,可以使用

$('#title').addClass('title').val()

尝试将
addClass
放在第一位

$('#title').addClass('title');
更新 要使代码完全工作,您应该像这样拆分行

var notificationText = $('#title').val() + ' ' + plainText;
$('#title').addClass('title');
$(plainText).addClass("description");
最后更新 所以我们实际上想做的是:

  • 获取内容的值
  • 在提交时附加它们并设置附加文本的样式
示例

// Get the text.
var notificationText = $('#title').val() + ' ' + plainText;

// Append to form.
$('form').append('<span class="summary">' + notificationText + '</span>');

// CSS styling
.summary {
    display:block;
    font-weight: bold;
}
//获取文本。
var notificationText=$('#title').val()+''+纯文本;
//附加到表单。
$('form')。追加(''+通知文本+'');
//CSS样式
.摘要{
显示:块;
字体大小:粗体;
}

请参见您正在尝试将类添加到值,该值肯定不是
jQuery
对象

请尝试以下方法:

$('#title').addClass('title').val()
$('#title').addClass('title');
你犯的错误:

<div id="title"><div>
$('#title').val().addClass('title')
因为不能将类添加到元素的值中

您应该将addClass添加到特定元素,因为addClass内部将向该元素添加属性类。 因此,最终的解决方案是:

 $('#title').addClass('title').val()

因为您正在尝试将类添加到值而不是元素上

$('#title').val().addClass('title')  //it is wrong
替换为:

$('#title').addClass('title')
如果明文不是您初始化的元素对象

var plainText = $('#anotherId');
也会导致此错误。

考虑到
#title
是元素的id。 您可以直接向其中添加类名

$('#title').addClass('className');

其中
className
是类的名称。

addClass
val()
都是jQuery对象上的方法,
val()
不像
addClass
那样是可链接的。执行
$('#title').val()
时,不返回对象,只返回元素的字符串值

改用这个:

$('#title').addClass('title').val()
$('#title').addClass('title');
如果您仍然需要获取该值:

$('#title').addClass('title').val();
plaintext
产生错误的原因是,您试图在使用
document.createElement(“DIV”)本机创建的DOM节点上使用jQuery
addClass
方法。这是行不通的。要使其正常工作,您需要使用jQuery定义新元素:

var divEle = $('<div></div>');
使用本机
classname
方法将类添加到DOM节点:

divEle.className = divEle.className + " description";

在这么短的时间里有这么多答案。。。叹息

我收集了你想要的东西。试试这个:

JSFiddle:
$(文档).ready(函数(){
CKEDITOR.replace('description');
$(“#title”).focus();
$('form')。提交(函数(事件){
event.preventDefault();
var html=CKEDITOR.instances.description.getSnapshot();
var divEle=document.createElement(“DIV”);
divEle.innerHTML=html;
var plainText=(divEle.textContent | | divEle.innerText);

var$title=$('
addClass
只能对jQuery对象执行,并返回一个jQuery对象-这就是使其可链接的原因。不能将类添加到字符串中

因此,在这段代码中,实际上有两个错误:

1)
plainText.addClass
-
plainText
是一个字符串,而不是jQuery对象。您必须将该类添加到您创建的元素中(在您的示例中是
divEle
元素),但是,由于
addClass
仅适用于jQuery对象,因此必须首先将div转换为jQuery元素。您可以通过执行以下操作来完成此操作:

$(divEle).addClass('description');
2)
addClass
返回一个jQuery对象,因此不能用字符串连接它

编辑:刚刚意识到您正在将
通知文本
(一个字符串)附加到DOM中。您必须将其转换为div并将div添加到DOM中


jsiddle:

您应该使用
$('#title').addClass('title').val()
您正在尝试构建JSON对象吗?@MaxArt:只有少数几个真正考虑到了实际问题:)我不知道是谁投票赞成这个问题,因为它有一些严重的问题。
纯文本
是一个文本内容,你怎么能给它添加类呢?但是它如何与OP的
+纯文本.addClass(“description”);
一起工作呢?但是它如何与
+纯文本.addClass(“description”)一起工作呢
OP有?@Archer“文本[对象]”@科林巴康:在你的提琴中,文本框中的文本变得粗体。我实际上希望通知中的文本是
bold
display:block
@RahulDesai谢谢你提供的信息。请参阅最终的提琴更新。@科林巴康:在你更新的提琴中,追加的文本没有样式:(但是OP的代码在那一行上也有
+明文.addClass(“description”);
。@TrueBlueAussie-对不起,我最初链接到了错误的答案-我现在更新了我的评论,链接到了第一个答案(并且没有编辑-至少,在这个答案发布之前它肯定包含
.val()
)。我并不想批评安迪,这个答案也是正确的。@Andy请看更新2(对不起,我知道这很烦人!)@RahulDesai@Andy实际上,我只想标题是
粗体
显示:block
。描述不需要样式。@RahulDesai,在洛杉矶