Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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 若span包含精确的文本,则将类添加到页面上的特定元素中_Javascript_Html_Jquery - Fatal编程技术网

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'
,分别添加类。在本例中,我添加了行,用于查找它所在的元素,并更改缩略图的类,该类具有与跨度相同的父级(或更准确地说,是祖级)。