365体育备用网址报道jQuery 遍历 - is() 方法_365体育备用网址官网资讯

jQuery/jquery_ref_traversing.HTML" title="jQuery 参考手册 - 遍历">jQuery 遍历参考手册

实例

返回 false,因为 input 元素的父元素是 p 元素:

  var isFormParent = $("input[type='checkbox']").parent().is("form");
  $("div").text("isFormParent = " + isFormParent);

PHP?filename=jquery_traversing_is">亲自试一试

定义和用法

is() 依据选择器、元素或 jQuery 对象来检测匹配元素集合,如果这些元素中至少有一个元素匹配给定的参数,则返回 true。

语法

.is(selector)
参数 描述
selector 字符串值,包含匹配元素的选择器表示式。

详细说明

与其余筛选方法不同,.is() 不创建新的 jQuery 对象。相反,它同意我们在不修改 jQuery 对象内容的情况下对其进行检测。这在 callback 内部通常比较有用,比如事情处置程序。

假设我们有一个列表,其中两个项目包含子元素:

<ul>
  <li>list <strong>item 1</strong></li>
  <li><span>list item 2</span></li>
  <li>list item 3</li>
</ul>

您能够向 <ul> 元素添加 click 处置程序,然后把代码限制为只有当列表项本身,而非子元素,被点击时才进行触发:

$("ul").click(function(event) {
  var $target = $(event.target);
  if ( $target.is("li") ) {
    $target.CSS("background-color", "red");
  }
});

亲自试一试

现在,当用户点击的是第一个列表项中的单词 "list" 或第三个列表项中的任何单词时,被点击的列表项会被设置为红色背景。不过,当用户点击第一个列表项中的 item 1 或第二个列表项中的任何单词时,都不会有任何变化,这是因为这上面的情况中,事情的目的分别是 <strong> 是 <span>。

请您注意,对于带有地位性选择器的选择器表示式字符串,比如 :first、:gt() 或者 :even,地位性筛选是针对传递到 .is() 的 jQuery 对象进行的,而非针对包含文档。所以对于上面的 HTML 来说,诸如 $("li:first").is("li:last") 的表示式返回 true,但是 $("li:first-child").is("li:last-child") 返回 false。

使用函数

该方法的第二种用法是,对基于函数而非选择器的相关元素的表示式进行求值。对于每个元素来说,如果该函数返回 true,则 .is() 也返回 true。例如,下面是略微复杂的 HTML 片段:

<ul>
  <li><strong>list</strong> item 1 - one strong tag</li>
  <li><strong>list</strong> item <strong>2</strong> -
    two <span>strong tags</span></li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

您能够向每个 <li> 添加 click 处置程序,以计算在被点击的 <li> 内部 <strong> 元素的数目:

$("li").click(function() {
  var $li = $(this),
    isWithTwo = $li.is(function() {
      return $('strong', this).length === 2;
    });
  if ( isWithTwo ) {
    $li.css("background-color", "green");
  } else {
    $li.css("background-color", "red");
  }
});

亲自试一试

------分隔线----------------------------

公布评论 (103人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换广州大赢家娱乐
最新评论