如果另一个div .thisdiv
具有特定文字.textdiv
,则将该课程添加到div [mytext]
。示例如下:
<div class="textdiv">
<div class="here">
[mytext]
</div>
</div>
然后添加课程mytext
:
<div class="thisdiv mytext"> </div> /*Add New class .mytext*/
我的意思是,如果只有.thisdiv
包含文字<div class="textdiv">
,那么将课程添加到[mytext]
,这意味着[ ]
符号很重要。
JS / Jquery如何做到这一点?
答案 0 :(得分:3)
您可以在选择器中使用contains(),但这不是完全匹配,它可以匹配元素中的部分文本。又名“foo”会匹配“foo”或“food”
//$('.textdiv:contains("\[mytext\]")').addClass("mytext");
if($('.textdiv:contains("\[mytext\]")').length) {
$(".thisdiv").addClass("mytext");
}
.mytext { background-color: yellow; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="textdiv">
<div class="here">
[mytext]
</div>
</div>
<div class="thisdiv">FOO</div>
答案 1 :(得分:1)
如果我正确理解你的问题。
function addTextClass(text,tclass){
if(typeof text == "undefined") return;
if(typeof tclass == "undefined") tclass=text; //Set class to the same as text if class is not specified.
$('.textdiv').each(function(){
if($(this).html().indexOf(text) > 0 )
$('.thisdiv').addClass(class);
});
}
您可以这样称呼:
addTextClass('mytext');
或
addTextClass('MyText','MyClass');