如果div类包含某些文本,则仅调整该类的css

时间:2017-05-31 15:35:17

标签: jquery html css contains

我试图让这个jQuery脚本只将css应用于包含文本的类,而不是其他的。

如果类包含某个文本,我想将宽度限制为100像素,将高度限制为100像素。

if ($('#targetID > div.targetClass:contains("Important Text")') {
        $('targetClass').css("width" , "100px").css("height" , "100px");
}

HTML Here:

   <div id="targetID">
    <div>
        <div class="targetClass">
            <a href="#">Not important</a>
        </div>
    </div>
    <div>
        <div class="targetClass">
            <a href="#">Not important</a>
        </div>
    </div>
    <div>
        <div class="targetClass">
            <a href="#">Important Text and Other Stuff</a>
        </div>
    </div>
    <div>
        <div class="targetClass">
            <a href="#">Not important</a>
        </div>
    </div>
   </div>

谢谢

3 个答案:

答案 0 :(得分:1)

:contains是一个选择器,当您尝试使用它时,它不会返回true / false。你可以做你想做的事:

$('#targetID div.targetClass:contains("Important Text")').css({
  "width": "100px",
  "height": "100px"
})

$('#targetID div.targetClass:contains("Important Text")').css({
  "width": "100px",
  "height": "100px"
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 <div id="targetID">
    <div>
        <div class="targetClass">
            <a href="#">Not important</a>
        </div>
    </div>
    <div>
        <div class="targetClass">
            <a href="#">Not important</a>
        </div>
    </div>
    <div>
        <div class="targetClass">
            <a href="#">Important Text and Other Stuff</a>
        </div>
    </div>
    <div>
        <div class="targetClass">
            <a href="#">Not important</a>
        </div>
    </div>
   </div>

答案 1 :(得分:0)

纯JS方法似乎最稳定:

var el = document.getElementById("yourTagId")
if (el.innerHTML.indexOf("Very cool text copy") !== -1) {
    // do something
}

答案 2 :(得分:0)

你可以在一个代码行中完成,

$("#targetID .targetClass:contains('Important Text')").css("width" , "100px").css("height" , "100px");