为什么.html()不会在class =“error Title”上工作

时间:2012-08-21 14:24:18

标签: jquery html

我正在尝试使用jQuery

更改以下内容的HTML
'<label for="aTitle" generated="true" class="error aTitle" style=""></label>';

但如果我使用下面的jQuery代码没有任何变化。我不能删除那里的空间。任何其他方法都可以使这项工作?

$(".error aTitle").html("Hello <b>world!</b>");

3 个答案:

答案 0 :(得分:9)

删除空格并为类选择器.

添加aTitle
$(".error.aTitle").html("Hello <b>world!</b>");

答案 1 :(得分:0)

您当前的选择器$(".error aTitle")表示匹配其父元素具有CSS类<aTitle>的所有.error元素,这不是您想要的。

要选择所需的元素,您需要将选择器更改为$('.error.aTitle')。每个类都必须以句点开头(表示CSS类),否则它将被视为一个元素(即<div>)。选择器中项目之间的空格表示遗产,因此使用$('.error .aTitle')之类的选择器意味着您要选择CSS类为.aTitle的所有元素,其父元素具有CSS类.error

另一个你可以使用的选择器的例子(可能有点过分)是$('label.aTitle.error'),它表示用<label>的CSS类选择所有.aTitle并且.error。这个选择器不匹配,比如<input type="text" class="error aTitle" />

答案 2 :(得分:0)

class="error aTitle"

您实际上是在这里设置两个类,而不是一个。该元素具有类error并且它具有类aTitle

您想要选择具有两个类的元素:

$('.error.aTitle')