jQuery开发常用方法

1、jQuery( “:eq(index)” )

在匹配的集合中选择索引值为index的元素。

jQuery( “:eq(index)” )
添加的版本: 1.0
index: 要匹配元素的索引值(从0开始计数)

jQuery( “:eq(-index)” )
添加的版本: 1.8
indexFromEnd: 要匹配元素的索引值(从0开始计数), 从最后一个元素开始倒计数。(-1匹配倒数第一个元素)

$("td:eq(2)").css("color", "red");

:eq() 是一个 jQuery 延伸出来的选择器,并不是的CSS规范的一部分, 使用:eq()查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。为了在现代浏览器上获得更佳的性能,请使用 $(“selector”).eq(index) 代替。

2. get(index)

通过检索匹配jQuery对象得到对应的DOM元素。

返回: Element, Array
描述: 通过jQuery对象获取一个对应的DOM元素

添加的版本: 1.0.get( [index ] )
index 类型: Integer 从0开始计数,用来确定获取哪个元素。

.get() 方法允许我们直接访问jQuery对象中相关的DOM节点。 如果index的值超出范围 - 小于元素数量的负数或等于或大于元素的数量 - 那么它将返回 undefined

<div>
    <p class="p">p0</p>
    <p class="p">p1</p>
    <p class="p">p2</p>
</div>


<script>
    $(function(){       
        //.get()  返回Dom元素,非jquery对象

        console.log($(".p").get(0)); //<p class="p">p0</p>

        console.log($(".p").get(-1)); //<p class="p">p2</p>

        console.log($(".p").get(0).data('test', 'test')); 
        //$(...).get(...).data is not a function, 报错
    });
</script>

每个 jQuery 对象也被 当成一个数组,所以我们也可以直接用数组的取值运算符来获得列表项:

console.log( $( ".p" )[0] );

然而,这种语法缺少某些 .get() 所具有的附加功能,比如可以指定索引值为负值:

console.log( $( ".p" ).get(-1) );

负的索引值表示从匹配的集合中从末尾开始倒数,所以上面这个例子将会返回列表中最后一项:

<p class="p">p2</p>

3、filter()

.filter(selector)

filter方法将匹配元素集合缩减为匹配指定选择器的元素。

selector:字符串值,包含供匹配当前元素集合的选择器表达式。

$("div").css("background", "#c8ebcc")
    .filter(".middle")
    .css("border-color", "red");


<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
  <li>list item 6</li>
</ul>

$('li').filter(':even').css('background-color', 'red');

如果给定表示 DOM 元素集合的 jQuery 对象,.filter() 方法会 用匹配元素的子集构造一个新的 jQuery 对象。所使用的选择器会测试每个元素;所有匹配该选择器的元素都会包含在结果中。

使用过滤函数

通过函数而不是选择器来筛选元素。对于每个元素,如果该函数返回 true,则元素会被包含在已筛选集合中;否则,会排除这个元素。

<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>
  <li>list item 6</li>
</ul>

$('li').filter(function(index) {
  return $('strong', this).length == 1;
}).css('background-color', 'red');
$form.find(".setBoxRequired").filter(function () {
    return $(this).hasClass("appManager") ? "" : $(this);
}).textbox("setValue", "");
$appListTable.find(".check-item").filter("[value='" + result[i] + "']");

4、:visible

Selects all elements that are visible

$( "div:visible" ).click(function() {
  $( this ).css( "background", "yellow" );
});
$( "button" ).click(function() {
  $( "div:hidden" ).show( "fast" );
});

元素可以被认为是隐藏的几个情况:

  1. CSS display值是none的元素;
  2. type=”hidden” 的表单元素;
  3. 宽度和高度都显式设置为0的元素
  4. 祖先元素是隐藏的,该元素是不会在页面上显示。

元素visibility: hidden或opacity: 0被认为是 可见的,因为他们仍然占据布局空间。在动画显示的元素期间,动画一旦开始,该元素就被认为是可见的。

不在文档中的元素是被认为是不可见的; 如果当他们被插入到文档中,jQuery没有办法知道他们是否是可见的,因为元素可见性依赖于使用的样式。

CSS的能见度属性(visibility)不影响元素是否隐藏的判断,因此$(elem).css(‘visibility’,’hidden’).is(‘:hidden’) == false;

5、:lt 选择器

$(":lt(index)")

:lt() 选择器选取带有小于指定 index 值的元素。
index 值从 0 开始。
经常与其他元素/选择器一起使用,来选择指定的组中特定序号之前的元素(如上面的例子)。

$("tr:lt(2)")

选择前 2 个 元素;
不包括当前索引值对应的元素;

6、:gt 选择器

$(":gt(index)")

定义和用法
:gt 选择器选取 index 值高于指定数的元素。
index 值从 0 开始。
经常与其他元素/选择器一起使用,来选择指定的组中特定序号之后的元素。

$("tr:gt(2)")

选择前 3 个之后的所有 元素;
不包括当前索引值对应的元素;

7、操作

1、获取选中的radio的值:

$("input[name='city']:checked").val();

使用元素选择器,再使用属性过滤器name=’city’,最后使用:checked选取被选中的元素。

2、给指定值的radio设置选中状态:

$("input[name='city'][value='YangZhou']").attr("checked",true);

给name=”city”而且value=”YangZhou”的radio设置选中状态。

3、取消name=”city”的radio的选中状态:

$('input[name="city"]:checked').attr("checked",false);

4、获取name=”city”的radio的个数:

$("input[name='city']").length;

5、获取name=”city”而且索引是偶数的radio:

$("input[name='city']:even");

索引是从0开始的。

6、获取name=”city”而且索引是奇数的radio:

$("input[name='city']:odd");

索引是从0开始的。

7、迭代radio:

$("input[name='city']").each(function(i,obj){
    //i,迭代的下标,从0开始
    //obj,当前的对象(HTMLInputElement),可以使用obj.value格式获取属性值
    //$(this);当前jQuery对象,可以使用$(this).val()获取属性值
});

迭代name=”city”的radio。

8、禁用radio:

$("input[name='city']").attr("disabled",true);

禁用name=”city”的radio。

9、启用radio:

$("input[name='city']").attr("disabled",false);

启用name=”city”的radio。

8、多个显示和隐藏方法的效率

下面的改变方式,执行速度会越来越慢。
.css({‘display’:’none’}) 和 .css({‘display’:’block’})
.addClass(‘hide’) 和 .removeClass(‘hide’)
.show() 和 .hide()
.toggle()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值