您正在查看: js 分类下的文章

jQuery $.each()常见的几种使用方法

<code class="language-html">
<!doctype html>
<html>        
<head>          
<meta charset="UTF-8">          
<title</title>          
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,userscalable=no" />          
<link href="../css/mui.min.css" rel="stylesheet" />      
</head>        
<body>          
<input name="aaa" type="hidden" value="111" />  <input name="bbb" type="hidden" value="222" />  <input name="ccc" type="hidden" value="333" />  <input name="ddd" type="hidden" value="444" />  <script src="../js/mui.min.js</script>          <script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript"> 
mui.init()  //处理一维数组              
var arr1 = ["aaa", "bbb", "ccc"];              
$.each(arr1, function(i, val) {                  console.log(i + val);}); //处理二维数组              
var arr2 = [                  
    ['a', 'aa', 'aaa'],                  
    ['b', 'bb', 'bbb'],                  
    ['c', 'cc', 'ccc']              
];              
$.each(arr2, function(i, item) {            console.log(i + "====" + item);                 $.each(item, function(j, val) {                     console.log(j + "====" + val)            
});              
}); //处理json数据              
var obj = {
    one: 1,                 
    two: 2,                  
    three: 3              
};              
$.each(obj, function(key, val) {               
    console.log(key + "===" + val)              
})//处理dom元素              
$.each($("input:hidden"), function(i, val) {       
    console.log("i===" + i)                  
    console.log(val.name)                  
    console.log(val.value)              
 })          
 </script>      
 </body>    
 </html>
 </code>

JSON.stringify()和JSON.parse()分别是什么

JSON.stringify() 从一个对象中解析出字符串

JSON.stringify({"a":"1","b":"2"})

结果是:"{"a":"1","b":"2"}"

JSON.parse()从一个字符串中解析出JSON对象

var str = '{"a":"1","b":"2"}';

JSON.parse(str);

结果是:Object{a:"1",b:"2"}

e.target

$(e.target)是jQuery对象,e.target是DOM对象,比如$(e.target)可以通过$(e.target).html()获取元素内容,e.target可以通过e.target.innerHTML获取元素内容
.val() 能够取到 针对text,hidden可输入的文本框的value值。

而 .attr('value') 可以取到html元素中所设置的属性 value的值,不能获取动态的如input type="text" 的文本框手动输入的值。

回调函数callback

<html> 
 
<head> 
 
<title>回调函数(callback)</title> 
<script language="javascript" type="text/javascript"> 
function a(callback) 
{    
   alert("我是parent函数a!"); 
    alert("调用回调函数"); 
   callback('1234','http://yhbin.cn'); 
} 
function b(id,url){ 
alert("我是回调函数b"); 
alert( id );
alert( url );

} 
function c(){ 
alert("我是回调函数c"); 

} 

function test() 
{ 
    a(b); 
} 

</script> 
</head> 
 
<body> 
<h1>学习js回调函数</h1> 
<button onClick=test()>click me</button> 
<p>应该能看到调用了两个回调函数</p> 
</body> 
 
</html>

注意:
1.执行顺序 test()->a()->b()
2.b函数作为回调函数可以有参数,但是a(b)这里面不能带参数,可以在a()里面回调

jQuery遍历

1、children()
<div class="div">
    <ul class="level-3">
        <li class="item-1">1</li>
        <li class="item-2">2</li>
        <li class="item-3">3</li>
    </ul>
</div>
$('.div >ul:last').css('border', '3px solid red')     class为div的最后一个子级ul加红色
$('.div ul').children(':last').css('border', '3px solid blue')    class为div下的ul下的最后一个子级li
$('.div ul li:last').css('border', '3px solid red')    class为div下的ul下的最后一个子级li
$('.div >ul:last').children(':last').css('border', '3px solid red')    class为div下的最后一个ul下的最后一个子级li

2、find()
    1.children只查找第一级的子节点
    2.find查找范围包括子节点的所有后代节点
    3.find()相当于空格
    4.children相当于>

3、parent()
    $('.item-a:last').parent().css('border', '1px solid blue')
    $('.item-a').parent(':last').css('border', '1px solid blue')

4、next()
    $('.item-2:first').next().css('border', '1px solid blue')   找到第一个class为item-2的节点的下一个
    $('.item-2').next(':first').css('border', '1px solid blue')  找到所有的class为item-2节点的下一个,然后找出其中的第一个

5、prev()
    $('.item-3:last').prev().css('border', '1px solid red')
    $('.item-3').prev(':last').css('border', '1px solid blue')

6、siblings() 所选节点的所有同级节点
    $('.item-2').siblings(':last').css('border', '2px solid blue')

7、each()
    //遍历所有的li
    //修改偶数li内的字体颜色
    $("li").each(function(index, element) {
        if (index % 2) {
            $(this).css('color','blue')
        }
    })
    $("li").each(function(index, element) {
         index 索引 0,1
         element是对应的li节点 li,li
         this 指向的是li
    })

php 插件

1、validate  $(form).validate({options})
其中form参数表示表单元素名称,options参数表示调用方法时的配置对象,所有的验证规则和异常信息显示的位置都在该对象中进行设置。
<script type="text/javascript" src="http://www.imooc.com/data/jquery.validate.js"></script>
<script type="text/javascript" src="http://www.imooc.com/data/jquery.validate.messages_cn.js"></script>
<script type="text/javascript">
    $(function () {
        $("#frmV").validate(
            {
              /*自定义验证规则*/
              rules: {
                    email:{
                        required:true,
                        email:true
                    }
            },
            /*错误提示位置*/
            errorPlacement: function (error, element) {
                error.appendTo(".tip");
            }
        });
    });
</script>

2、ajaxForm  $(form). ajaxForm ({options})
其中form参数表示表单元素名称;options是一个配置对象,用于在发送ajax请求过程,设置发送时的数据和参数
<script type="text/javascript" src="http://www.imooc.com/data/jquery.form.js"></script>
<script type="text/javascript">
    $(function () {
        var options = {
            url: "http://www.imooc.com/data/form_f.php", 
            target: ".tip"
        }
        $("#frmV").ajaxForm(options);
    });
</script>

3、lightBox  $(linkimage).lightBox({options})
<script type="text/javascript" src="http://www.imooc.com/data/jquery.notesforlightbox.js"></script>
<div id="divtest">
<div class="title">
    <span class="fl">我的相册</span>
</div>
<div class="content">
    <div class="divPics">
        <ul>
            <li><a href="http://img.mukewang.com/52e489f20001ecfc04480275.jpg" title="第1篇风景图片">
                <img src="http://img.mukewang.com/52e489f20001ecfc04480275.jpg" alt="" />
            </a></li>
            <li><a href="http://img.mukewang.com/52e48a1e0001eec804480275.jpg" title="第2篇风景图片">
                <img src="http://img.mukewang.com/52e48a1e0001eec804480275.jpg" alt="" />
            </a></li>
            <li><a href="http://img.mukewang.com/52e48a4c00015ad204480275.jpg" title="第3篇风景图片">
                <img src="http://img.mukewang.com/52e48a4c00015ad204480275.jpg" alt="" />
            </a></li>
        </ul>
    </div>
</div>
</div>

<script type="text/javascript">
$(function () {
    $('ul a').lightBox({
        overlayBgColor: "#666", //图片浏览时的背景色
        overlayOpacity: 0.5, //背景色的透明度
        containerResizeSpeed: 600 //图片切换时的速度
    })
});
</script>

4、jqzoom  $(linkimage).jqzoom({options})
其中linkimage参数为包含图片的<a>元素名称,options为插件方法的配置对象。
 <script type="text/javascript" src="http://www.imooc.com/data/jquery.jqzoom.js"></script>
 <div id="divtest">
<div class="title">
    <span class="fl">图片放大镜</span> 
</div>
<div class="content">
    <a href="http://img.mukewang.com/52e4aec90001924d06800599.jpg" id="jqzoom" title="小兔子乖乖">
         <img src="http://img.mukewang.com/52e4aee700012df702130212.jpg" alt=""/>
    </a>
</div>
</div>

<script type="text/javascript">
$(function () {
    $('.content a').jqzoom({ //绑定图片放大插件jqzoom
        zoomWidth: 200, //小图片所选区域的宽
        zoomHeight: 200, //小图片所选区域的高
        zoomType: 'reverse' //设置放大镜的类型
    });
});
</script>

juqery之选择器

1、 层级选择器
1. $('div>p') 选择所有div元素里面的子元素p   $("div").chindren("p")
    >  直接子元素,隔层不成立
2.  $('div  p')选择所有div元素里面的p元素    $("div").find("p")
3.  $(".prev+div").prev后的第一个节点    $('.prev').next('div')
4.  $(".prev~div").prev后面的所有div兄弟(兄弟!)节点,隔层不算   $('.prev').nextAll('div')

2、基本筛选选择器
$(".div:first")    class属性为div的第一个元素
$(".div:last")     class属性为div的最后一个元素
$(".div:even")    class属性为div的下标为偶数元素
$(".div:odd")    class属性为div的下标为奇数元素
$(".aaron:eq(2)")    class属性为aaron的下标为2的元素
$(".aaron:gt(3)")    class属性为aaron的下标大于3的元素
$(".aaron:lt(2)")   class属性为aaron的下标小于2的元素

3、可见性筛选选择器
<p id="div1" style="display:none;">display</p> 隐藏
<p id="div2" style="width:0;height:0">width/height</p> 隐藏
<p id="div3" style="visibility:hidden;opacity:0">visibility</p> 显示
$('#div1:visible')
$('#div1:hidden')

4、属性筛选选择器
//查找所有div中,属性name=p1的div元素
$('div[name=p1]')
//查找所有div中,有属性p2的div元素
$('div[p2]')
//查找所有div中,有属性name中的值只包含一个连字符“-”的div元素
$('div[name|="-"]')
//查找所有div中,有属性name中的值包含一个连字符“空”和“a”的div元素
$('div[name~="a"]')
//查找所有div中,属性name的值是用imooc开头的
$('div[name^=imooc]')
//查找所有div中,属性name的值是用imooc结尾的
$('div[name$=imooc]')
//查找所有div中,有属性name中的值包含一个test字符串的div元素
$('div[name*="test"]')
//查找所有div中,有属性testattr中的值没有包含"true"的div
$('div[testattr!="true"]')

5、表单元素选择器
$(':password') == $('[type=password]')
$('input:text') == $('input[type="text"]') == $('input[type=text]')

6、表单对象属性筛选选择器
//查找所有input所有可用的(未被禁用的元素)input元素。
$('input:enabled')
//查找所有input所有不可用的(被禁用的元素)input元素。
$('input:disabled')
//查找所有input所有勾选的元素(单选框,复选框)
//移除input的checked属性
$('input:checked').removeAttr('checked')
//查找所有option元素中,有selected属性被选中的选项
//移除option的selected属性
$('option:selected').removeAttr('selected')

7、特殊选择器this
this,表示当前的上下文对象是一个html对象,可以调用html对象所拥有的属性和方法。
$(this),代表的上下文对象是一个jquery的上下文对象,可以调用jQuery的方法和属性值。

p.addEventListener('click',function(){
    //this === p
    //以下两者的修改都是等价的
    this.style.color = "red";
    p.style.color = "red";
},false);

$('p').click(function(){
    //把p元素转化成jQuery的对象
    var $this= $(this) 
    $this.css('color','red')
})

jquery AJAX学习

1. getJSON
var $this = $(this);
$.getJSON("http://www.imooc.com/data/sport.json",function(data){
    $this.attr("disabled", "true");
    $.each(data, function (index, sport) {
        if(index==3)
        $("ul").append("<li>" + sport["name"] + "</li>");
    });
});
2.get  $.get(url,[callback]) 
参数url为服务器请求地址,可选项callback参数为请求成功后执行的回调函数。
$.get('http://www.imooc.com/data/info_f.php', function(data) {
    $this.attr("disabled", "true");
    $("ul").append("<li>我的名字叫:" + data.name + "</li>");
    $("ul").append("<li>男朋友对我说:" + data.say + "</li>");
}, "json");
3.post  $.post(url,[data],[callback])
参数url为服务器请求地址,可选项data为向服务器请求时发送的数据,可选项callback参数为请求成功后执行的回调函数。
$.post("http://www.imooc.com/data/check_f.php",
    {num:$('#txtNumber').val()},
    function (data) {
        $("ul").append("<li>你输入的<b>  "
        + $("#txtNumber").val() + " </b>是<b> "
        + data + " </b></li>");
    });
4.serialize  $(selector).serialize()
其中selector参数是一个或多个表单中的元素或表单元素本身。
$('#litest').html( $('form').serialize() );
5.ajax  $.ajax([settings])
其中参数settings为发送ajax请求时的配置对象,在该对象中,url表示服务器请求的路径,data为请求时传递的数据,dataType为服务器返回的数据类型,success为请求成功的执行的回调函数,type为发送数据请求的方式,默认为get。
 $.ajax({
    url: 'http://www.imooc.com/data/check.php',
    method:'get',
    dataType:'json',
    data: { num: $("#txtNumber").val() },
    success: function (data) {
        $("ul").append("<li>你输入的<b>  "
        + $("#txtNumber").val() + " </b>是<b> "
        + data + " </b></li>");
    }
});
6.ajaxSetup  $.ajaxSetup([options])
先调用ajaxSetup()方法设置全局的Ajax选项值,再点击两个按钮,分别使用ajax()方法请求不同的服务器数据,并将数据内容显示在页面
<script type="text/javascript">
$(function () {
    $.ajaxSetup({
        type: 'POST',
        success:function(data){
            $("ul").append("<li>你输入的<b>  "
                + $("#txtNumber").val() + " </b>是<b> "
                + data + " </b></li>");
        }
    });
    $("#btnShow_1").bind("click", function () {
        $.ajax({
            data: { num: $("#txtNumber").val() },
            url: "http://www.imooc.com/data/check.php"
        });
    })
    $("#btnShow_2").bind("click", function () {
        $.ajax({
            data: { num: $("#txtNumber").val() },
            url: "http://www.imooc.com/data/check_f.php"
        });
    })
});
</script>

jquery全选ajax删除

1、juqery全选
全选按钮

<input type="checkbox" id="check_box" onclick="selectall('lead_id[]');"/>

列表按钮

<input name="lead_id[]" type="checkbox" value="<?php echo $value['lead_id'];?>" />
function selectall(name) {
  if ($("#check_box").prop("checked")==false) {
    $("input[name='"+name+"']").each(function() {
      this.checked = false;
    });
  } else {
    $("input[name='"+name+"']").each(function() {
      this.checked = true;
    });
  }
}

2、post删除

  function del_many(){
    var ids='';
    $("input:checkbox[name='lead_id[]']:checked").each(function(i, n){
        ids += $(n).val() + ',';
    });
    if( ids ){
      if ( confirm( '确定删除吗?' ) )
      {
        location.href = '?m=party_admin&c=leader_admin&a=dele_leader&leader_id=' + ids;
      }
    }else{
      alert('请选择要删除的记录!');return false;
    }
  }

3、编辑信息

  function edit( id ){
   $.post("?m=party_admin&c=activity_admin&a=activity_info",{activity_id:id},function(msg){
     var data = eval('('+msg+')');
     $('#edit_activitytitle').val( data.activity_name );
     $('#edit_party_name').val( data.party_name );
     $("select[name ='edit_activity_type'] option[value='"+data.activity_type+"']").attr('selected','selected');
     $('#edit_activity_time').val( data.activity_time );
     $('#edit_activity_palce').val( data.activity_place );
     $('#edit_activity_partypeople').val( data.party_should_num );
     $('#edit_activity_vilpeople').val( data.villager_should_num );
     $('#edit_activity_leadpeople').val( data.leader_should_num );
     $('#edit_activity_content').val( data.activity_contents );
     $('#edit_activity_id').val( data.activity_id );
     $('#upload_pics').val( data.activity_pic );
     /* 照片显示 */
     if ( data.activity_pic != '' )
     {
         $( '#upload_pics' ).val( data.activity_pic );
     }
     /* 党员显示 未到 + 已到 */
     var party_people_arr = data['party_people'];
     var new_party_people = '';
     var sign_party_people = '';
     if ( party_people_arr != undefined )
     {
         $.each( party_people_arr, function( key, value ) {
             if ( value['is_sign'] == '0' )
             {
                 new_party_people += "<span id="+ 'not_party_id_'+ value['person_id'] +">";
                 new_party_people += value['person_name'];
                 new_party_people += "</span>";
             }
             else
             {
                 sign_party_people += "<span id="+ 'party_id_'+ value['person_id'] +">";
                 sign_party_people += value['person_name'];
                 sign_party_people += "</span>";
             }              
         });
         $( '#party_not_to' ).html( new_party_people );
         $( '#party_sign_name' ).html( sign_party_people );
     }      
     /* 手机端操作  1、启用  0、关闭  2、已完成 */
     var mobile_operate_msg = '';
     switch( data['mobile_operate'] )
     {
         case '0':
             mobile_operate_msg = '启动手机端操作';
             $( '#button_mobile_operate' ).attr( 'onclick', 'open_mobile_operate( '+ id +' );' );
         break;
         case '1':
             mobile_operate_msg = '手机端操作已开启';
         break;        
         case '2':
             mobile_operate_msg = '手机端操作已完成';
         break;
     }
     $( '#mobile_operate' ).html( mobile_operate_msg );

   });
   $( '#determine' ).attr( 'onclick', 'edit_submit();' );
   /* 开始签到的方法绑定 */
   $( '#start_sign' ).attr( 'onclick', "begin_start_sign( "+ id +" );" );
 }

kindeditor编辑器上传图片只有远程,没有本地

今天项目中有个用kindeditor编辑器的功能,里面的上传图片只能显示远程连接,没有本地的
QQ截图20161106210523.png
开始没有思路,弹窗框的内容不知道在哪设置的,于是便一点点打断点,终于在image.js中找到了QQ截图20161106210824.png
这段代码判断编辑框显示什么,于是写console.log打印一下
QQ截图20161106211005.png
很显然,远程为true,本地为false,所以导致不能上传本地的图片,设置本地上传为true即可
QQ截图20161106211145.png
设置好看前台显示即可
QQ截图20161106211237.png
测试成功
QQ截图20161106211331.png