JavaScript JQuery 实现AJXA & 选择器

使用JQuery实现AJAX实例:

<html>
    <head>
        <title>title</title>
        <style type = "text/css">
            table {
                width: 200px;
                height: 200px;
                border-collapse: collapse;
            }
            
            table th {
                border: 2px solid #888;  
            }
            
            body {
                text-align: center;
            }
            
            th {
                font-family: 'helvetica';
                color: #666;
                font-weight: bold;
            }
        </style>
        <script src="https://code.jquery.com/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <!--AJAX格式-->
        <!--<table>
            <tr>
                <th>1-1</th>
                <th>1-2</th>
            </tr>
            <tr>
                <th>2-1</th>
                <th>2-2</th>
            </tr>
            <tr>
                <th>3-1</th>
                <th>3-2</th>
            </tr>
            <tr>
                <th>4-1</th>
                <th>4-2</th>
            </tr>
            
        </table>-->
        <div id="theD"></div>
        <button id="theB">get data</button>
        <script type="text/javascript" src="s51jquery.js"></script>
    </body>
</html>

js:

//AJAX in JQuery
$(document).ready(function(){ //类似onload
    $('#theB').click(function() { //类似css中为id定义style
        //配置request
        htmlobj = $.ajax({
            type: 'get',
            url: 's51jquery.json',
            async: true,
            dataType: 'json',
            success: function(data) {
                //$('theD').text(JSON.stringify(data));
                //console.log(data);
                console.log(jsonToHTML(data));
                $('#theD').append(jsonToHTML(data));
            }
        });
    });
});

function jsonToHTML(json) {
    //jquery写法
    var table = $('<table/>');
    $(json['LINE']).each(function() {
        var tr = $('<tr/>').appendTo(table);
        $(this['COLUMN']).each(function() {
            var th = $('<th/>').html(this['TEXT']).appendTo(tr);
        })
    });  
    return table;
}

JQuery选择器:

1)允许对HTML元素组或单个元素进行操作
2)基于id、类(class属性)、类型(tag)、属性(attr)、属性值等进行查找或者选择HTML元素
3)JQuery是基于已有的css选择器,除此之外,还自定义了选择器

4)所有的选择器都以$开头


选择器类型及使用方法均在注释内:

/*
//------------------------------JQuery选择器------------------------------//
1)允许对HTML元素组或单个元素进行操作
2)基于id、类(class属性)、类型(tag)、属性(attr)、属性值等进行查找或者选择HTML元素
3)JQuery是基于已有的css选择器,除此之外,还自定义了选择器
4)所有的选择器都以$开头
*/



//------------------------------基础选择器------------------------------//

//1)* 表示选择所有
//$('*').css('background-color', 'red');
//匹配所有,改变背景颜色
//---使用'*'

//2)选择标签,匹配所有标签
//$('div').css('background-color', 'red');
//选择所有div类,改变背景颜色
//---使用''

//3),表示或
//$('div, p').css('background-color', 'red');
//将div或p改变背景颜色
//---使用','

//4)匹配id
//$('#id1, #id2').css('background-color', 'red');
//将id1和id2的背景修改为红色
//---使用'#id'

//5) 匹配class
//$('.class1').css('background-color', 'red');
//$('.class1, .class2').css('background-color', 'red');
//与css一致,使用.调用对应class
//---使用'.class'



//------------------------------层次选择器------------------------------//

//1)直接或者间接后代选择
//$('div p').css('background-color', 'red');
//div为父元素,p为后代元素,筛选父元素为div的后代元素p(不一定直接是子元素)
//使用'空格'

//2)直接后代选择
//$('div>p').css('background-color', 'red');
//直接后代,即p需要为div的子元素,一定是父子关系
//---使用'>'

//3)邻接或者不邻接的后续选择
//$('p~p').css('background-color', 'red');
//同级别内,筛选前面有p元素的p元素(不一定邻接)
//---使用'~'

//4) 邻接的后续选择
//$('p+p').css('background-color', 'red');
//同级别内,选择前面邻接p元素的p元素(一定要邻接)
//---使用'+'



//------------------------------基本过滤选择器------------------------------//
//在条件中添加筛选条件
//---使用':'

//$('div:first').css('background-color', 'red');
//选择第一个div
 
//$('div:last').css('background-color', 'red');
//选择最后一个div

//$('div:not(.class1)').css('background-color', 'red');
//选择不是class1类的div

//$('div:not(.class1, .class2)').css('background-color', 'red');
//',' 在not内部
//---使用'not'

//$('div:even').css('background-color', 'red');
//$('div:odd').css('background-color', 'blue');
//选择奇偶,div奇为红,div偶为蓝

//$('div:eq(0)').css('background-color', 'red');
//$('div:gt(3)').css('background-color', 'red');
//$('div:lt(2)').css('background-color', 'red');
//选择第0(1)个div模块/大于/小于第0(1)个div模块
//---使用'eq(n)'/'gt(n)'/'lt(n)'

//$(':header').css('background-color', 'red');
//选择h1-h5
//使用':header'

/*
function animateDiv() {
    $('div:eq(0)').animate({width:'50%'}, 'slow');
    $('div:eq(0)').animate({width:'100%'}, 'slow', animateDiv);//第三个参数调用函数
}
animateDiv();
$(document).ready(function() {
   $('#theB').click(function(){
       $(':animated').css('background-color', 'yellow');
       //选择animated状态的模块
   }); 
});
*/

//$('div:nth-child(3n)').css('background-color', 'yellow');
//筛选div;且div需要是body下的第3n个子元素

//$('div:nth-of-type(3n)').css('background-color', 'yellow');
//筛选div;且是第3n个div(只看div模块)



//------------------------------可见性过滤选择器------------------------------//
//1) display:none 或者 input type=hidden 不可见,没有它的位置
//2)visibility:hidden 或者 opacity:0 不可见,但是占位置

//$(':hidden').css('display', 'block');
//筛选不可见
//$(':visible').css('background-color', 'red'); 
//筛选可见



//------------------------------内容过滤选择器------------------------------//
//1)包含文本字符
//$('div:contains(\'3\')').css('background-color', 'red'); 
//筛选包含'3'的div模块
//---使用'contains(\'str\')',str为文本字符

//2)空的
//$('div:empty').text(123);
//筛选内容为空的div
//---使用'empty'

//3)包含某些子元素或者文本
//$('div:parent').css('background-color', 'red'); 
//筛选包含子元素或者不为空的div
//---使用'parent'

//4)包含子元素
//$('div:has(p)').css('background-color', 'red'); 
//筛选包含p子元素的div模块
//---使用'has(e)',e为tag类



//------------------------------属性过滤选择器------------------------------//
//1)带有属性的
//$('div[myAttr]').css('background-color', 'red'); 
//筛选带有'myAttr'属性的div
//---使用'e[attr]',e为tag,attr为属性

//2)带有属性,且符合属性值
//$('div[myAttr=\'a11\']').css('background-color', 'red'); 
//筛选带有'myAttr'属性的div,且属性值为'a11'
//---使用'e[attr=\'value\']',e为tag,attr为属性, value为属性值

//3)不带有属性或者不符合属性值
//$('div[myAttr!=\'a11\']').css('background-color', 'red'); 
//---使用'!='

//4)带有属性,且不符合属性值
//$('div').filter('[myAttr]').filter('[myAttr!=\'a11\']').css('background-color', 'red');
//$('div[myAttr][myAttr!=\'a11\']').css('background-color', 'red');
//---使用'filter'来设置多个筛选条件
//---直接将多个条件放在一起,不间隔开

//5)属性值以xxx开头
//$('div[myAttr^=\'a\']').css('background-color', 'red'); 
//属性值以'a'开头
//---使用正则表达式'^='

//6)属性值以xxx结尾
//$('div[myAttr$=\'22\']').css('background-color', 'red'); 
//属性值以'22'开头
//---使用正则表达式'$='

//6)属性值包括xxx
//$('div[myAttr*=\'1\']').css('background-color', 'red'); 
//属性值包括'1'
//---使用正则表达式'*='



//------------------------------表单过滤选择器------------------------------//
//$(':input').css('display', 'none');
//---使用'input'

//$(':text').css('display', 'none');
//input中type为text

//$(':password').css('display', 'none');
//input中type为password
//$(':radio').css('display', 'none');
//$(':checkbox').css('display', 'none');
//$(':submit').css('display', 'none');
//$(':reset').css('display', 'none');
//$(':button').css('display', 'none'); // 对于input中type=button和button都有用
//$(':image').css('display', 'none');
//$(':file').css('display', 'none');
//$(':enabled').css('display', 'none'); // 筛选未被禁用的input
//$(':disabled').css('display', 'none'); // 筛选被禁用的input
//---使用':typevalue',typevalue为type的值

/*
$(document).ready(function() { 
    $('button:contains(\'f1\')').click(function() {
        alert($(':selected').val()); //获取被选中的option的value
    });
    
    $('button:contains(\'f2\')').click(function() {
        alert($(':checked').val()); //获取被checked的表单的value
    });
});
*/

对应html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>title</title>
        <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    </head>
    <body>
        <div id="id1" style="background: green; height: 20px; width: 100%">div 1</div>
        <p id="id2">p 1</p>
        <div class="class1">
            div 2
            <p>p 2</p>
            <span></span>
            <p>p 3</p>
            <p>p 4</p>
        </div>
        <div class="class1">div 3</div>
        <div class="class1" myAttr="a11">div 4</div>
        <div class="class1" myAttr="a22">
            div 5
            <span>
                <p>p 5</p>
            </span>
            <span>
                <p>p 6</p>
            </span>
        </div>
        <div class="class2" myAttr="a33">div 6</div>
        <div class="class2">div 7</div>
        <div class="class2" style="height: 20px; background: yellow; display: none;">div 8</div>
        <h2>22222</h2>
        <h3>33333</h3>
        
        <form action="">
            <input type="text"/>
            <input type="password"/>
            <input type="radio" value="rad"/>
            <input type="checkbox" value="chk"/>
            <input type="submit"/>
            <input type="reset"/>
            <input type="button" value="xxx"/> <!--和button区别,input值在value中,button直接写-->
            <input type="image"/>
            <input type="file"/>
            <input type="text" disabled="disabled"/>
            <input type="hidden"/>
            <select name="" id="">
                <option value="111">beijing</option> <!--value为该选项的返回值-->
                <option value="222">tianjing</option>
                <option value="333">shenzhen</option>
            </select>
            <button>f1</button>
            <button>f2</button>
        </form>
        <button id='theB' type='button'>change it</button>
        <script src="s51.js"></script>
    </body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值