百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

jQuery 控制属性和样式

qiyuwang 2025-03-07 23:52 15 浏览 0 评论

标记的属性

each()遍历元素:each(callback)方法主要用于对选择器进行遍历,它接受一个函数为参数,该函数接受一个参数,指代元素的序号。

对于标记的属性而言,可以利用each()方法配合this关键字来获取或者设置选择器中每个元素相对应的属性值;

jQuery代码:

$(function(){
    $("img").each(function(index){
        this.title = "这是第" + index + "幅图,id是:" + this.id; //此时this指DOM对象
    });
});

HTML代码:





理解:首先利用$("image")获取页面中所有图片的集合,然后通过each()方法遍历所有图片,通过this关键字对图片进行访问,获取图片的id,

并设置图片的title属性。其中each()方法的函数参数index为元素所处的序号(从0开始计数)。

jQuery代码:

$(function(){
    $("img").each(function(index, item){
        item.title = "这是第" + index + "幅图,id是:" + this.id; //此时item指当前的DOM对象
    });
});

HTML代码:





//使用jQuery中插件机制

$.fn.extend({
    quanxuan:function(){
        //专用于实现全选
        this.attr("checked",true);
    },
    quxiao:function(){
        //取消功能
        this.attr("checked",false);
    },
    fanxuan:function(){
        //反选
        var leng = this.length;
        this.each(function(index,domElement){ //this指jQuery对象
        domElement.checked = !domElement.checked; //domElement= this this指DOM对象
    })
    }
});

获取属性的值

attr(name)

$(function(){
    //var sTitle = $("em").attr("title"); //获取第一个元素的title属性值
    var sTitle = $("em:eq(1)").attr("title"); //获取第二个元素的title属性值
    $("span").text(sTitle);
});

注意: 因为没有遍历,$("em").attr("title") 实际上获取的是第一个元素的title属性值

$("em").attr("title") 等同于$("em:eq(1)").attr("title")

$("em").get(0).title 也是获取第一个元素的title属性值, 而$("em").get(0)已经转换成DOM对象, 因此就不能使用jquery对象的attr方法

设置属性值

attr(name,value)

$("a[href^=http://]").attr("target","_blank")

jQuery代码:

function DisableBack(){
    $("button:gt(0)").attr("disabled","disabled");
}

HTML代码:

 
 
 

通过位置选择器:gt(0),当单击第1个按钮时后面的两个按钮将同时禁用;

attr()方法还接受函数作为参数attr(name,fn),它的第2个参数为一个函数,该函数接受一个参数,为元素的序号,返回值为字符串;

jQuery代码

$(function(){
    $("div").attr("id", function(index){
        //将id设置为序号相关的参数
        return "div-id" + index;
    }).each(function(){
        //找到每一项的span标记
        $(this).find("span").html("(id='" + this.id + "')");
    });
});

HTML代码:

第0项
第1项
第2项

用attr()方法接受属性列表

$(function(){
    $("img").attr({
        src: "06.jpg",
        title: "紫荆公寓",
        width:300, //参考HTML语法, 无需加单位, 也可以写成 widht:"300px" 加单位必须加引号
        alt: "紫荆公寓"
    });
});

删除属性

$("button").removeAttr("disabled");

removeAttr(name)删除属性相当于HTML的标记中不设置该属性, 并不是取消了该标记的这个特点。

小结:

$().attr(属性名称); //获得属性信息值

$().attr(属性名称,值); //设置属性的信息

$().removeAttr(属性名称); //删除属性

$().attr(json对象); //同时为多个属性设置信息值, json对象的键值对就是名称和值

$().attr(属性名称,fn); //通过fn函数执行的return返回值对属性进行赋值

获取属性的第二种方式:

$("input[type='checkbox']").prop("checked");

设置元素的样式

添加、删除CSS类别

用addClass()方法添加CSS类别

$(function(){
    //同时添加多个CSS类别
    $("div").addClass("myClass1 myClass2"); //增加多个CSS类别,用空格隔开
});

用removeClass()方法删除CSS类别

希望某些元素的样式风格在某个类别之间切换,时而addClass()类别,时而removeClass()类别;

用toggleClass()方法在类别间动态切换 toggle 切换

$(function(){
    $("p").click(function(){
        //点击的时候不断切换
        $(this).toggleClass("highlight");
    });
});

实例:jQuery制作交替变幻的表格



交替变幻的表格

<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
$(function(){
$("table.datalist tr:nth-child(odd)").addClass("altrow");
$("table").mouseover(function(){
$("tr:gt(0)").toggleClass("altrow");
});
$("table").mouseout(function(){
$("tr:gt(0)").toggleClass("altrow");
});
});
</script>


Name Class Birthday Constellation Mobile
isaac W13 Jun 24th Cancer 1118159
fresheggs W610 Nov 5th Scorpio 1038818
girlwing W210 Sep 16th Virgo 1307994
tastestory W15 Nov 29th Sagittarius 1095245

直接获取、设置样式

jQuery提供css()方法来直接获取、设置元素的样式风格。使用方法与attr()几乎一模一样。

通过css(name)来获取某种样式风格的值;$("p").css("color");

通过css(properties)列表来同时设置元素的多种样式;$("p").css({ color: "#ff0011", background: "blue" });

通过css(name,value)来设置元素的某种样式;$("p").css("color","red");

通过css(name,function(index, value))设置一个样式属性的值


css()样式操作特点:

此函数返回要设置的属性值。接受两个参数,index为元素在对象集合中的索引位置, value是原先的属性值。

1 样式获取,jquery可以获取行内、内部、外部的样式。dom方式只能获得行内样式

2 复合属性样式需要拆分为"具体样式"才可以操作

例如: background 需要拆分为 background-color background-image 等进行操作

border: border-left-style border-left-width border-left-color 等

margin: margin-left margin-top 等

也可以将样式属性写成驼峰式: backgroundColor, 可以不加引号。

在json对象中, 带横线的css属性(如font-size)必须加引号;

如:

$('div').css({"font-size":"40px","font-weight":"bold",color:"red"});

标准格式:

$('div').css({"font-size":"40px","font-weight":"bold","color":"red"});

css还支持获取属性值的方法, 保持原来的属性值(width()和css()两种方法)

oInput.val(tdText).css({'width':oTd.width(), 'font-size':'14px','font-weight':'bold', 'border':0,
'background-color':oTd.css('background-color')});

与下面的语句等同:

oInput.val(tdText).css('width',tdObj.width()).css('font-size','14px').css('font-weight','bold').
css('border-width',0).css('background-color',oTd.css('background-color'));
$("div").click(function() {
    $(this).css({
        width: function(index, value) {
            return parseFloat(value) * 1.2;
        },
        height: function(index, value) {
            return parseFloat(value) * 1.2;
        }
    });
});

以下代码为

标记添加了mouseover和mouseout事件,当这两个事件触发时通过css(name,value)来修改标记的颜色。

$(function(){
    $("p").mouseover(function(){
        $(this).css("color","red");
    });
    $("p").mouseout(function(){
        $(this).css("color","black");
    });
});

另外还可以通过hasClass(name)方法来判断某个元素是否设置了某个CSS类别,如何设置了则返回true,否则为false。

$("li:last").hasClass("myClass")

等同于$("li:last").is(".myClass")

在jQuery中其实hasClass方法内部调用的就是is()方法,只不过代码可读性更高一些;

小结:

class属性值操作

$().attr('class',值);

$().attr('class');

$().removeAttr('class属性'); //删除class的属性

class具体快捷操作方法:

$().addClass(class属性值); //给class属性追加信息值

$().removeClass(class属性值); //删除class属性中的某个信息值

$().toggleClass(class属性值); //开关效果,有就删除,没有就添加

css样式操作

$().css(name,value); //设置

$().css(name); //获取

$().css(json对象); //同时修改多个css样式

CSS样式操作-宽高

width() 取得第一个匹配元素当前计算的宽度值(px)。

width(val) 为每个匹配的元素设置CSS宽度(width)属性的值; 如果没有明确指定单位(如:em或%), 默认使用px

height(100) height("100px") 后面含有单位的必须加引号


height() 取得第一个匹配元素当前计算的高度值

height(val) 为每个匹配的元素设置CSS高度(hidth)属性的值; 如果没有明确指定单位(如:em或%), 默认使用px

height(100) height("100px") 后面含有单位的必须加引号

相关推荐

在Word中分栏设置页码一页两个页码的技巧!

施老师:在正常情况下,Word文档中一页只会出现一个页码。但在某种情况下,比如说:用了分栏后,我们希望一页中出现两个页码,那应该如何实现呢?今天,就由宁双学好网施老师来为大家讲一下,利用域来实现一页两...

如何在关键时刻向上自荐(如何在关键时刻做出正确选择)

抓住机会,挺身而出有种时刻叫“关键时刻”,关键时刻,作为一个认为自己有能力的、训练有素的人,应该考虑挺身而出,甚至应该不考虑就挺身而出。...

WPS Word:跨页的文档表格,快速调整为一页。#Excel

如何快速将跨页的文档表格调整为一页?需要根据两种情况分别处理。如果表格所有行的行高相同,调整为一页的方法有两种。第一种方法是将光标移动到表格内,然后将鼠标移动到表格右下角的方框处,按住鼠标左键向上拖动...

word文档插入下一页分节符(word下一页分页符)

在word文档中,对文档页面进行分页是特别常见的操作,其中的下一页分节符也是用得比较多的,但是一些人不太清楚在哪里设置,也不知道它具体能实现的功能是什么。接下来看看如何在word文档中插入下一页分节符...

word文档如何设置某一页纸张的方向

word文档页面方向有横向和纵向,纵向是默认的纸张方向,有时我们需要将页面设置为横向,或只设置其中某一页方向,应该怎么操作呢?一起来看看下面的详细介绍第一步:...

word怎么单独设置一页为横向(word2019怎样设置单独一页为横向)

word里面其中一页可以改为横向的吗?经过实际操作发现是完全可以的。...

Word如何设置分栏,如何一页内容同时显示一栏和两栏

我们使用Word文档,有时需要用到两栏的排版,甚至一页内容同时包含一栏和两栏的排版,这种格式怎么设置呢?具体步骤如下:首先是两栏排版的设置,直接点击Word文件上方工具栏【布局】,选择【分栏】下面的【...

Word怎么分页?这三个方法可以帮到你

我们不仅可以利用Word编辑文档,还可以编辑文集呢。但是有时候会出现两个部分的文章长短不一,我们需要对文档进行分页处理。这样可以方便我们对文档进行其他操作。那么Word怎么分页呢?大家可以采用下面这...

Word内容稍超一页,如何优化至单页打印?

如何将两页纸的内容,缩到一页打印呢?有时候一页纸多一点内容,我们完全可以缩一下,放到一页来打印。...

[word] word 表格如何跨行显示表头、标题

word表格如何跨行显示表头、标题在Word中的表格如果过长的话,会跨行显示在另一页,如果想要在其它页面上也显示表头,更直观的查看数据。难道要一个个复制表头吗?当然不是,教你简单的方法操作设置Wo...

Word表格跨页如何续上表?(word如何让表格跨页不断掉)

长文档的表格跨页时,你会发现页末空白太多了,这时要怎么调整?选中整张表格,右击【表格属性】,点击【行】选项,之后勾选【允许跨页断行】,点击确定即可解决空白问题。...

Word怎么连续自动生成页码,操作步骤来了!

Word怎么连续自动生成页码,操作步骤来了!...

word文档怎么把两页合并成一页内容?教你4种方法

word怎么把两页合并成一页?word怎么把两页合并成一页?用四种方法演示一下。·方法一:把这一个文档合并成一页,按ctrl加a全选文档,然后右键点击段落,弹出的界面行距改成固定值,磅值可以改小一点,...

如何将Word中的一页的纸张方向设置为横向?这里提供详细步骤

默认情况下,MicrosoftWord将页面定向为纵向视图。虽然这在大多数情况下都很好,但你可能拥有在横向视图中看起来更好的页面或页面组。以下是实现这一目标的两种方法。无论使用哪种方法,请注意,如果...

Word横竖混排你会玩吗?(word横排竖排混合)

我们在用Word排版的时候,一般都是竖版格式,但偶尔会需要到一些特殊的版式要求,比如文档中插入的一个表格,横向的内容比较多,这时就需要用到横版,否则表格显示不全。这种横竖版混排的要求,在Word20...

取消回复欢迎 发表评论: