jQuery实例方法 — 位置图形、遍历索引

≡放荡痞女 提交于 2019-11-30 04:19:15

位置坐标图形大小相关方法:

offset()、position()
原生js的offset是距离最近的有定位的父级的距离,jq的offset就是距离文档的距离。
position是获取有定位的父级的距离

<style>
.wrapper{
    width: 200px;
    height: 200px;
    background-color: red;
    position: absolute;
    left: 150px;
    top: 150px;
}
.demo{
    width: 50px;
    height: 50px;
    background-color: orange;
    position: absolute;
    left: 50px;
    top: 50px;
}
</style>

<div class="wrapper">
    <div class="demo"></div>
</div>
console.log($('.demo').offset());     // {top: 200, left: 200}
console.log($('.demo').position());   // {top: 50, left: 50}

scrollTop()、scrollLeft()
取值:$ (window).scrollTop()
传值:$ (window).scrollTop(100)

width()、innerWidth()、outerWidth、height()…

<style>
.demo{
    width: 100px;
    height: 100px;
    border: 2px solid black;
    padding: 20px;
    margin: 20px;
    background-color: orange;
}
</style>

<div class="demo"></div>
console.log($('.demo').css('width'));     // 100px
console.log($('.demo').css('padding'));   // 20px
// content
console.log($('.demo').width());          // 100
// content + padding
console.log($('.demo').innerWidth());     // 140
// content + padding + border
console.log($('.demo').outerWidth());     // 144
// content + padding + border + margin
console.log($('.demo').outerWidth(true)); // 184

遍历索引相关方法:

each()

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
// 给每个li添加文本与class名
// 传统做法
$('li').text(function (index, elem) {
    return index;
}).addClass(function (index, elem) {
    return 'demo' + index;
});
// each做法
$('li').each(function (index, elem) {
    $(elem)
        .text(index)
            .addClass('demo' + index);
});

children()
获取所有的子元素的jq对象
index()
获取索引

<ul>
    <li class="demo">1</li>
    <li>2</li>
    <li class="demo">3</li>
    <li>4</li>
    <li class="demo">5</li>
</ul>
$('ul').children().on('click', function (e) {
	// 按照顺序点击5个li所对应的值
    console.log($(e.target).index());              // 0 1 2 3 4
    console.log($('ul .demo').index($(e.target))); // 0 -1 1 -1 2
});
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!