Javascript 若span包含精确的文本,则将类添加到页面上的特定元素中
我有下面的代码Javascript 若span包含精确的文本,则将类添加到页面上的特定元素中,javascript,html,jquery,Javascript,Html,Jquery,我有下面的代码 $("span.number").filter(function() { if (return ($(this).text() === 'PENDING')) { $(".property-thumb").addClass("pending"); } if (return ($(this).text() === 'PENDING INSPECTION')) { $(".property-thumb").addCla
$("span.number").filter(function() {
if (return ($(this).text() === 'PENDING')) {
$(".property-thumb").addClass("pending");
}
if (return ($(this).text() === 'PENDING INSPECTION')) {
$(".property-thumb").addClass("pendinginspection");
}
});
简单地说,如果“span.number”包含挂起或挂起检查,我希望将某些类添加到“.property thumb”中。为什么不起作用?您不能在
if
语句中使用return
关键字。这是无效语法。不要使用
filter
而是使用循环并删除return
语句
在循环中,使用$(this)
选择正在循环的当前元素,找到它所在的父元素(这是为了创建它应该选择哪个缩略图的上下文),然后从具有的父元素中选择缩略图元素
使用if…else if
语句检查$(“span.number”)
中的每个项目,如果文本是待处理的
或待检查的
,然后将相应的类添加到缩略图中
提示:变量前面的$
可以用来指示该值是jQuery对象,这样您就知道它是什么类型的值以及可以使用它做什么
$("span.number").each(function() {
var $this = $(this);
var text = $this.text();
var $property = $this.parents('.property');
var $propertyThumb = $property.find('.property-thumb');
if (text === 'PENDING') {
$propertyThumb.addClass("pending");
} else if (text === 'PENDING INSPECTION') {
$propertyThumb.addClass("pendinginspection");
}
}
这很有道理,但不起作用。查看此链接:再次检查链接。看起来他们都在等待检查,可能是因为两个文本中都有“等待”,对吗?我该如何解决这个问题?再次感谢!这就是你的代码所做的,而不是解释它应该做什么的一部分。它在所有
元素上循环,并基于该文本更改所有“.property thumb”
元素。由于它只会添加一个类一次,它可能会将这两个类都添加到每个缩略图元素中,如果'PENDING'
和'PENDING INSPECTION'
都作为文本出现在跨距中,我没有解释如果其中一个匹配,它不应该同时添加这两个类。我的错。这就是为什么我想根据我的研究使用过滤器。现在这更复杂了吗?过滤将是一种很好的方法,尽管你必须过滤两次才能得到正确的缩略图(对于'PENDING'
和'PENDING INSPECTION'
,分别添加类。在本例中,我添加了行,用于查找它所在的元素,并更改缩略图的类,该类具有与跨度相同的父级(或更准确地说,是祖级)。