如果属性值= [重复],则jquery更改类

Posted

技术标签:

【中文标题】如果属性值= [重复],则jquery更改类【英文标题】:jquery change class if attribute value = [duplicate] 【发布时间】:2013-10-17 18:25:55 【问题描述】:

早安,

对不起,我认为这是一个简单的“愚蠢”问题,但我有一个很大的空白。

如果 attr 值等于给定值,我想更改一个类。

我有以下几点:

 <a str=10 href="start.php class="old">Start<a>

因此,如果 a 中的 str attr 为 10,我会将类设置为 class="new"

我尝试过类似的方法:

$('a.attr.subnr.10).addClass('old');

我想是凌晨:-(

谢谢!

【问题讨论】:

【参考方案1】:

试试这个简单的语句:

$("a[str='10']").addClass("old");

【讨论】:

谢谢你这是最简单的方法!【参考方案2】:
$('a[str=10]').removeClass('old').addClass('new');

【讨论】:

【参考方案3】:

首先str不是有效属性,考虑使用data-str

你可以这样做

if($('a').attr('data-str') == 10) 
    $('a').addClass('add_class');

Demo


确保您使用特定的选择器,这是一个通用的选择器,因此请考虑使用 .parent a 之类的东西


如果你想要一个纯 CSS 的解决方案,你也可以使用 attr=value 之类的选择器

a[data-str="10"] 
   color: red;

这不会向您的元素添加类,但您可以使用上面的选择器定位它。

【讨论】:

谢谢你这么好的表达!你是对的 str 不是一个有效的值,但在我的情况下很遗憾地说是必要的:-( @Phantom001 至少在值周围使用引号..【参考方案4】:

试试这个

$('a[str=10]').removeClass('oldClass').addClass('newClass');
$('a[str!=10]').removeClass('newClass').addClass('OldClass');

【讨论】:

以上是关于如果属性值= [重复],则jquery更改类的主要内容,如果未能解决你的问题,请参考以下文章

如果有超链接,则更改列表样式类型 - 没有 javascript/jQuery [重复]

绑定到静态类属性[重复]

如果满足条件,则更改值,数据框[重复]

在Javascript中推送不重复的数组并更改对象的属性值?

如果类包含值,则更改背景颜色

如果数组中存在重复值,则增加对象的计数属性