如果div包含特定单词,则使用jquery在父div中添加一个新类
这是HTML代码:如果div包含特定单词,则使用jquery在父div中添加一个新类,jquery,html,Jquery,Html,这是HTML代码: <div class="menu-3-cat"> <div class="menu-item-category">Offer</div> </div> 它应该是可行的,并将类“makemered”添加到父div“menu-3-cat”中,但它没有。我做错了什么 JSFIDLE好的,您的小提琴大约有4个问题 您没有包括jQuery 您没有将脚本包装在$(document).ready(function(){….})中。现在,由
<div class="menu-3-cat">
<div class="menu-item-category">Offer</div>
</div>
它应该是可行的,并将类“makemered”添加到父div“menu-3-cat”中,但它没有。我做错了什么
JSFIDLE好的,您的小提琴大约有4个问题
$(document).ready(function(){….})中代码>。现在,由于您处于一种混乱状态,您有时可以摆脱它,因为有些东西会被注入,但是如果您在常规页面上运行该代码,那么如果没有document.ready,它将无法(可靠地)工作
Offer
,则您将看到不同之处$(document).ready(function(){
if ($('.menu-item-category').text() === 'Offer') {
$('.menu-3-cat').addClass('make-me-red');
}
})
$(document).ready(function(){
$('.menu-item-category').each(function(){
var $this = $(this);
if($this.text().indexOf('Offer') > -1)
$this.closest('.menu-3-cat').addClass('make-me-red')
})
})
好的,你的小提琴有四个问题
$(document).ready(function(){….})中代码>。现在,由于您处于一种混乱状态,您有时可以摆脱它,因为有些东西会被注入,但是如果您在常规页面上运行该代码,那么如果没有document.ready,它将无法(可靠地)工作
Offer
,则您将看到不同之处$(document).ready(function(){
if ($('.menu-item-category').text() === 'Offer') {
$('.menu-3-cat').addClass('make-me-red');
}
})
$(document).ready(function(){
$('.menu-item-category').each(function(){
var $this = $(this);
if($this.text().indexOf('Offer') > -1)
$this.closest('.menu-3-cat').addClass('make-me-red')
})
})
代码中有两个问题,div中有一个空行,其中包含文本“Offer”,因此将其与if语句中的
Offer
进行比较时,返回false。我删除了div中的空格,因此if语句返回true
您还需要一个documentready标记,以便在页面加载时运行if语句
这是完整的工作代码
$(文档).ready(函数(){
如果($('.menu-item-category')。text()=='Offer'){
$('.menu-3-cat').addClass('make-me-red');
}
});代码>
.menu-3-cat{
位置:相对位置;
溢出:隐藏;
}
.把我弄红{
背景#F44336;
颜色:#ffffff;
}
提供
您的代码中有两个问题,div中有一个空行,其中包含文本“Offer”,因此将其与if语句中的Offer
进行比较时,返回false。我删除了div中的空格,因此if语句返回true
您还需要一个documentready标记,以便在页面加载时运行if语句
这是完整的工作代码
$(文档).ready(函数(){
如果($('.menu-item-category')。text()=='Offer'){
$('.menu-3-cat').addClass('make-me-red');
}
});代码>
.menu-3-cat{
位置:相对位置;
溢出:隐藏;
}
.把我弄红{
背景#F44336;
颜色:#ffffff;
}
提供
根据您的JSFIDLE和注释,您需要比较每个选定元素的文本()。否则,将返回“匹配元素集中每个元素的组合文本内容”
一种方法是迭代元素:
我还添加了删除元素文本内容中任何空白的功能
var$categories=$('.menu-item-categority');
$categories.each(函数(){
var$this=jQuery(this);
如果($this.text().trim()=='Offer'){
$this.closest('.menu-3-cat').addClass('make-me-red');
}
});代码>
.menu-3-cat{
位置:相对位置;
溢出:隐藏;
}
.把我弄红{
背景#F44336;
颜色:#ffffff;
}
东西
提供
东西
根据您的JSFIDLE和注释,您需要比较每个选定元素的文本()。否则,将返回“匹配元素集中每个元素的组合文本内容”
一种方法是迭代元素:
我还添加了删除元素文本内容中任何空白的功能
var$categories=$('.menu-item-categority');
$categories.each(函数(){
var$this=jQuery(this);
如果($this.text().trim()=='Offer'){
$this.closest('.menu-3-cat').addClass('make-me-red');
}
});代码>
.menu-3-cat{
位置:相对位置;
溢出:隐藏;
}
.把我弄红{
背景#F44336;
颜色:#ffffff;
}
东西
提供
东西
您希望何时发生这种情况?加载、单击(某物)等?我希望在页面加载时触发此命令。类“菜单项类别”中是否有多个元素?您在问题中包含的代码与您的JSFIDLE中的代码不同,我有一种预感,这将使所有这些都有所不同。JSFIDLE中的.text()
在单词“Offer”之前有一个换行符,因此如果条件为false
@showdev yes,则会生成一个包含12个元素的列表,但其中只有一个元素具有文本“Offer”,您希望何时出现这种情况?加载、单击(某物)等?我希望在页面加载时触发此命令。类“菜单项类别”中是否有多个元素?您在问题中包含的代码与您的JSFIDLE中的代码不同,我有一种预感,这将使所有这些都有所不同。y中的.text()