检查每个段落包含jQuery的任何粗体元素

时间:2015-11-24 07:31:45

标签: jquery

我想浏览所有p,然后检查p是否不包含任何b。但是当我的下面的脚本无法正常工作时。

当我将条件设置如下时,所有p都不会突出显示。

!$.contains($(this), 'b')

我尝试如下,但它会突出显示所有p

!$.contains($(this), 'b')

这个$(this)在循环期间是否全部p而不是特定的p

$(document).ready(function() {
  $('p').each(function() {
    if (!$.contains($(this), 'b')) {
      $(this).css('background-color', 'yellow');
    }
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<h1>Welcome to My Homepage</h1>
<p class="intro">My name is Donald.</p>
<p><b>I live in Duckburg.</b>
</p>
<p>My best friend is Mickey.</p>
Who is your favourite:
<ul id="choose">
  <li>Goofy</li>
  <li>Mickey</li>
  <li>Pluto</li>
</ul>

4 个答案:

答案 0 :(得分:1)

:has() selector:not()选择器

结合使用
  

选择包含至少一个与指定选择器匹配的元素的元素。

$('p:not(:has(b))').css('background-color', 'yellow');

OR

$('p').not(':has(b)').css('background-color', 'yellow');

&#13;
&#13;
$(document).ready(function() {
  $('p:not(:has(b))').css('background-color', 'yellow');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<h1>Welcome to My Homepage</h1>

<p class="intro">My name is Donald.</p>
<p><b>I live in Duckburg.</b>
</p>
<p>My best friend is Mickey.</p>

Who is your favourite:
<ul id="choose">
  <li>Goofy</li>
  <li>Mickey</li>
  <li>Pluto</li>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用 :has() 选择包含b的元素,然后使用 :not() {{3} } 以避免它们

$(document).ready(function() {
  $('p').not(':has(b)').css('background-color', 'yellow');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<h1>Welcome to My Homepage</h1>

<p class="intro">My name is Donald.</p>
<p><b>I live in Duckburg.</b>
</p>
<p>My best friend is Mickey.</p>

Who is your favourite:
<ul id="choose">
  <li>Goofy</li>
  <li>Mickey</li>
  <li>Pluto</li>
</ul>

或者您可以使用 not()

$(document).ready(function() {
  $('p').filter(function() {
    return $('b', this).length == 0;
  }).css('background-color', 'yellow');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<h1>Welcome to My Homepage</h1>

<p class="intro">My name is Donald.</p>
<p><b>I live in Duckburg.</b>
</p>
<p>My best friend is Mickey.</p>

Who is your favourite:
<ul id="choose">
  <li>Goofy</li>
  <li>Mickey</li>
  <li>Pluto</li>
</ul>

答案 2 :(得分:0)

这应该有用。

$('p').each(function(){
    if($(this).find('b').length > 0) {
        alert($(this).find('b').text());
    }
});

答案 3 :(得分:0)

你可以试试这个:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <SwitchPreference
        android:id="@+id/notification"
        android:key="notification"
        android:title="@string/notification"
        android:defaultValue="true"/>
</PreferenceScreen>