在跨度中设置文本


73

我有这个跨度

<a title="Prev" data-event="click" 
   data-handler="prev" class="ui-datepicker-prev   ui-corner-all">
     <span class="ui-icon ui-icon-circle-triangle-w">Prev</span>
</a>

我需要将范围的文本设置为<<而不是其当前文本Prev

我在下面尝试了此操作,但是它没有像预期的那样更改文本。如何才能做到这一点?

 $(".ui-icon .ui-icon-circle-triangle-w").html('<<');

我想这行不通,因为您需要通过ASCII代码才能获得&laquo; 试试吧,我认为它会工作。
Dipesh Parmar

Answers:


142

.text()改用,然后更改选择器:

$(".ui-datepicker-prev .ui-icon.ui-icon-circle-triangle-w").text('<<');

-查看演示-


13

这是因为选择器错误。根据您的标记,.ui-icon.ui-icon-circle-triangle-w"应指向相同的<span>元素。因此,您应该使用:

$(".ui-icon.ui-icon-circle-triangle-w").html("<<");

要么

$(".ui-datepicker-prev .ui-icon").html("<<");

要么

$(".ui-datepicker-prev span").html("<<");

hmmm ..认为这不会起作用,因为它将尝试将解释<<为html,不是吗?
musefan

1
@musefan不。它将起作用。不需要text()方法。
2012年

1
@VisioN这仅是因为在这种情况下,它不会解析为HTML。我认为如果我们要处理文本内容,text则应使用。如果用户希望<prev>显示该内容,那么它将被解释为HTML
Curt 2012年

@Curt<prev>有一个右>括号,因此浏览器会在其中加上标签。否则,<<>>将正确地解释它。
2012年

@VisioN为什么html()而不是text()呢?我没有看到好处,只有潜在的缺陷。OP将内容更改<prev>为以后的日期,现在他们必须更改用于输出字符串的方法。为什么首先没有使用正确的方法。
Curt

5

您需要修复选择器。尽管CSS语法要求多个类之间用空格分隔,但是选择器语法将要求它们直接连接起来并加点前缀:

$(".ui-icon.ui-icon-circle-triangle-w").text(...);

或更好:

$(".ui-datepicker-prev > span").text(...);


2

给您的跨度提供一个ID,然后更改目标跨度的文本。

$("#StatusTitle").text("Info");
$("#StatusTitleIcon").removeClass("fa-exclamation").addClass("fa-info-circle"); 

<i id="StatusTitleIcon" class="fa fa-exclamation fa-fw"></i>
<span id="StatusTitle">Error</span>

在这里,“错误”文本将变为“信息”,并且它们的字体图标也将被更改。


2

尝试一下。它将首先查找包含范围为“ ui-icon-circle-triangle-w”类的范围的锚标记,然后将范围的文本设置为“ <<”。

$('a span.ui-icon-circle-triangle-w').text('<<');

与答案添加一些解释如何回答帮助OP在固定电流问题
ρяσѕρєяķ

是的,...。它将首先查找包含范围为“ ui-icon-circle-triangle-w”类的范围的锚标记,然后将范围的文本设置为“ <<”。希望您现在明白了... :)
Aamir

是编辑这答案,使您解答更有帮助,因为刚刚发布的代码片段不回答任何question.Thanks正确的方式
ķρяσѕρєя
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.