元素标题包括并添加类

时间:2018-06-28 14:37:29

标签: javascript jquery

如何将类添加到包含如下所示特定文本的特定元素上:

var title = $('.pass-item .title').text();

if(title.includes('7 days within 1')){
   // Here I want to select the element which has the title text '7 days within 1' 
   // And append a class to it
}

我希望有人能帮助我:)

3 个答案:

答案 0 :(得分:2)

您可以使用jQuery的:contains仅搜索该元素,然后使用addClass添加类:

$(".pass-item .title:contains('7 days within 1')").addClass("the-class");

如果没有找到,那就很好了,jQuery的API是基于基于集合的,因此不会出现错误。

答案 1 :(得分:0)

您需要首先获取所有项目的数组,它们映射到该数组并检查每个项目中包含的文本。如果它包含必需的文本,则使用新的类将其返回,否则只需返回该项目

let titles = document.querySelectorAll('.pass-item.title')

titles = Array.prototype.slice.call(titles);

titles.map((item) => { 
    if (item.textContent.includes('7 days within 1')) {
        item.classList.add('new-class')
        return item
    } else {
        return item
    }
});

https://codepen.io/anon/pen/yEQjZw?editors=1111

答案 2 :(得分:0)

但是,您可以遍历具有某些类或属性的每个元素,并检查它们是否包含这样的文本:

$labels = [
    'project' => 'Project Name',
    'creator' => 'Creator',
    'programming_language' => 'Programming Language'
];

$msg = '';
foreach ($labels as $key => $label) {
    $msg .= $label . ': ' . $_POST[$key];
}