其中每个变量等于span内容添加类

时间:2019-04-18 13:17:49

标签: javascript jquery

问题和代码

我正在尝试以下代码:

1

当我检查控制台中的$('.rdsubs-mysubscriptions table tbody tr td a').each(function() { var subItem = $(this).html(); //console.log(subItem); var subItemStripped = subItem.substring(12); console.log(subItemStripped); $('body').find('span:contains("subItemStripped")').addClass('HELLO'); }); // end of each function 时,它会显示以下内容:

subItemStripped

(至少在我的脑海中,这意味着)对于Framework Content Slideshow 内部的每个span,它应该找到其中一个body并找到匹配项应该添加类subItemStripped,但是这没有发生。 其实什么也没发生。

当我更改此行时:

hello

$('body').find('span:contains("subItemStripped")').addClass('HELLO');

效果很好。因此,我是否将变量$('body').find('span:contains("Framework")').addClass('HELLO'); 放错了位置或与subItemStripped函数有关。

我尝试了以下操作以使其正常工作

使用上面的代码,我来到这里之前尝试了几种变体:

.each()

我还尝试了使用从其他SO帖子收集的完全不同的代码集进行尝试,但这些代码均无效。为什么我不知道。

$('body').find('span:contains(subItemStripped)').addClass('HELLO');

$('body').find("span:contains('subItemStripped')").addClass('HELLO');

我为什么需要这个

我知道我不必解释为什么我需要这样做,但是如果上述不可行,它对于提出其他好主意可能很有用。

我有一个网页,在该页面上是一个菜单,其中包含用户可以访问的产品,他们可以下载这些产品。 每个菜单项都有一个带有标题的跨度。这些标题的构建方式如下:$("span").filter(function() { return $(this).text() === subItemStripped; }).addClass("hello"); $("span").filter(function() { return $(this).text() === subItemStripped; }).css("font-size", "6px"); Framework Content

在同一页面上还显示了所有用户订阅的组件。 通过上面的代码,我可以查看用户的所有订阅。哪个返回 Slideshow CompanyName Framework CompanyName Content

然后我剥离CompanyName Slideshow我不知道的所有菜单内的部件。这给我留下了.substring(12) Framework Content

这时,我知道某些菜单标题和被剥离的项目是相同的,对于每次匹配,我都想添加一个类,然后可以在该类上添加一些CSS或其他内容。

希望这个问题很清楚,在此先感谢大家的帮助。

1 个答案:

答案 0 :(得分:1)

@gaetanoM您完全正确。在我发布问题之后,我就来到了这个网站: jQuery contains() with a variable syntax

找到与您说的答案相同的答案!

$('body').find("span:contains('" + subItemStripped + "')").addClass('HELLO'); 

非常感谢!

@gaetanoM您可以在答案中发表评论吗?然后,我可以选择它作为接受的答案。我现在回答这个问题只是为了确保它有一个答案。随着人们因提出无法获得答案的问题而受到惩罚。