天天看点

jQuery ---页面内容,样式,控制属性设置元素及内容元素的属性操作CSSeach() 遍历对象成员属性toggleClass()

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/71249335

设置元素及内容

  • html() 获取元素中的HTML内容(相当于innerHTML)
  • text() 获取文本内容(自动清理HTML标签)
  • html(value) 设置innerHTML的内容
  • text(value) 替换文本内容(覆盖innerHTML中所有的文本和标签)
  • val() 获取value属性,加属性表示设置value的值
  • val([value,value]) 控制选中的组件

text() 会过滤掉标签中的HTML标签,text对于以下段落的处理结果是:

<div id="a">
        <p>这是一个段落</p>
        <p>这是第二个段落</p>
        <p>这是第三个段落</p>
    </div>           
这是一个段落 这是第二个段落 这是第三个段落

当val([“value”,”value2”,…]) 参数为数组时,与value对应的表单组件会被选中

表单:
    <input type="checkbox" name="name" value="man">
    <input type="checkbox" name="name" value="women">           
操作:
        $("input").val(["man","women"]);       // 两个复选框都会被选中           

PS: 当html() 和 text() 的参数带有HTML标签时,HTML会原封不动的输出HTML标签,而text()会将HTML标签转义后再输出,所以text()输出的是纯文本,即使文本中有HTML标签也会按照纯文本输出。

元素的属性操作

  • attr(“属性名”)
  • attr(“属性名”,”属性值”) 设置属性值
  • attr({key:value,key:value}) 设置多个属性
  • attr(“属性值”,function(index,value){})value表示原来的value(如果没有value则为undefined)
  • removeAttr(“属性名”) 删除属性

同时设置多个属性

$("#input").attr({
            class:'a',
            size:10
        });           

通过匿名函数设置属性值

$("#input").attr('value',function(index,value){
                return index + value;
        });           

以上方法都可使用匿名函数

CSS

  • css(“”) 获取css样式
  • css(“属性名”,”属性值”) 设置css样式
  • css([“属性名”,”属性名”,…]) 返回包含所有属性的对象(原生js对象)
  • css(“属性名”,function(index,value){})
var data = $("#a").css(['width','height','background-color']);
        for(var i in data ){
            alert(data[i]);
        }           

设置多个样式:

css({
    "属性名":"属性值",
    "属性名":"属性值",
    })           
$("#a").css({
            "width":"200px",
            "height":"200px",
            "background-color":"green"
        });           

each() 遍历对象成员属性

对于原生的js对象:

$.each(对象,function(样式属性名,属性值){})

$.each(data,function(a,b){
            alert(a+":"+b);
        });           

对于jQuery对象:

$(“div”).each(function(index,element){}) element是DOM对象

$("div").each(function(index,element){
            alert(index+element.innerHTML)
        });           

toggleClass()

  • toggleClass(className) 默认样式和指定样式之间的切换
  • toggleClass(className,switch) 移除和添加指定的样式
  • toggleClass([switch]) 移除和添加已有的所有样式
  • toggleClass(function(){}) 匿名函数
  • toggleClass(function(index,className,switchBool){}) 匿名函数(形参名不能是关键字,否则会报错)
  • addClass(“class1 class2 class3”);增加class
  • removeClass(“class1 class2”);
  • true: 切换为指定样式
  • false: 切换为默认样式

在指定样式与默认样式之间切换

document.getElementById("a").onclick = function(){
                $("#a").toggleClass("red");
        };           

下面的代码与上面的代码作用相同,用count计数切换的

var count=0;
        $("#a").click(function(){
                $("#a").toggleClass("red",count++%2==0);
        });           

实现在两个样式之间切换

var count = 0 ;
        $("#a").click(function(){
            $(this).toggleClass("red" , count++ %2 == 0 );
            if($(this).hasClass('red')){
                $(this).removeClass('green');
            }else{
                $(this).toggleClass('green');
            }
        });           

使用不带参数的匿名函数

$("div").click(function(){
                $(this).toggleClass(function(){
                    if($(this).index() % 2 == 0 ){
                        return "green";
                    } else {
                        return "red";
                    }
                })
            });           

使用带参数的匿名函数

$(document).click(function(){
                $("div").toggleClass(function(index,className,switchBool){
                    if(index % 2 == 0 ){
                        return "green";
                    } else {
                        return "red";
                    }
                })
            });           

PS:removeClass()中没有带任何参数,表示的是把指定元素中的所有类名移除

继续阅读