jQuery 面试题

一、使用方式

1、引入jQuery的js文件
<script>
  // 第一种
  $(function{
    // 执行代码
  })

  // 第二种
  $(document).ready(function() {
    // jQuery推荐的写法
  });

  // 第三种
  window.onload = function() {
    // 不推荐
    // window.onload是在页面加载完成之后执行的函数,
    // 如果你的你页面没有加载完毕,或者说某个东西没有加载出来,卡在那了,
    // 那么window.onload就不会执行
  }

  // 自定义方法
  function submit () {
    
  }

  //法一:事件名(函数)  即事件名作为 方法名来用
	$("#btn").click(function() {console.log("点击了我");});
	$("#btn").mouseover(function() {console.log("over");});
	$("#btn").mouseout(function() {console.log("out")});
		
  //法二:bind('事件名', 函数)绑定
	$("#btn").bind('click', function() {console.log("点击");});
	$("#btn").bind('mouseover', function() {console.log("鼠标上来...")});
	$("#btn").bind('mouseout', function() {console.log("鼠标出去...")});

  function fun1(){
    //第一个 :first
    $('li:first').css('color','pink');

    //最后一个 :last
     $('li:last').css('color','pink');

    //:eq()参数是下标 从0开始
     $('li:eq(2)').css('color','pink');

    //:gt() 大于某个下标 :lt()小于某个下标
     $('li:gt(4)').css('color','pink');

    // :even 所有偶数 从0开始
     $('li:even').css('color','pink');

    // :odd所有奇数 从0开始
     $('li:odd').css('color','pink');

    //:not() 除了
     $('li:not(#a1)').css('color','pink');

    // :header h1-h6的
    $(':header').css('color','pink');

    // 选取当前获取焦点的元素
    :focus

    //注意!!在组合选择器在试用前下标会归位,即从0开始
    // 请求接口数据
    $.ajax({
      url:"#",
      type:"post",
      dataType:"json",
      success: function (newslist) {
        console.log(newslist)
      },
      error: function(err) {
        console.log(err)
      }
    })

    var configObj = {
       method   //数据的提交方式:get和post
       url   //数据的提交路劲
       async   //是否支持异步刷新,默认是true
       data    //需要提交的数据
       dataType   //服务器返回数据的类型,例如xml,String,Json等
       success    //请求成功后的回调函数
       error   //请求失败后的回调函数
    }
    $.ajax(configObj);//通过$.ajax函数进行调用。
  }
</script>
// 元素绑定事件
 <input type="button" name="" value="触发" onclick="fun1()" id="">

二、如何找到所有 HTML select 标签的选中项?

$('[name=selectname] :selected')

三、jquery怎么移除标签onclick属性

获得a标签的onclick属性:    $(“a”).attr(“onclick”)
删除onclick属性:          $(“a”).removeAttr(“onclick”);
设置onclick属性:          $(“a”).attr(“onclick”,“test();”);

四、addClass,removeClass,toggleClass的使用。

$(selector).addClass(class):为每个匹配的元素添加指定的类名

$(selector).removeClass(class):
从所有匹配的元素中删除全部或者指定的类,删除class中某个值;

$(selector).toggleClass(class):如果存在(不存在)就删除(添加)一个类

$(selector).removeAttr(class);删除class这个属性;
$("p span")         // 后代选择器
// 注:后代选择器选择父元素所有指定选择的元素,不管是儿子级,还是孙子级

$("p>span")        // 子选择器
// 注:子选择器只选择直属于父元素的子元素

$(".one+p")        // 同辈选择器
// 选取class为one的下一个<p>同辈元素集合

$("#two~p")        // 同辈选择器
// 选取id为two的元素后所有<p>同辈元素集合

$("p:contains('我')")       // 内容过滤选择器
// 选取含有文本“我”的元素

$("p:empty") 
// 选取不包含子元素或者文本元素的空<p>元素(<p></p>)

$("p:has(p)")        // 选取含有选择器所匹配的元素的元素,返回元素集合
// 选取含有<p>元素的<p>元素(<p><p/></p>)

$("p:parent")        // 选取含有子元素或者文本的元素,返回元素集合
// 选取含有子元素或者文本元素的<p>元素

:focus             // 选取当前获取焦点的元素
:hidden            // 选取所有不可见的元素,返回元素集合
:visible           // 选取所有可见的元素,返回元素集合

// 属性过滤选择器
$("p[id]") 选取拥有id属性的p元素

$("input[name=text]") 选取拥有name属性等于text的input元素
$("input[name!=text]") 选取拥有name属性不等于text的input元素
$("input[name^=text]") 选取拥有name属性以text开始的input元素
$("input[name$=text]") 选取拥有name属性以text结束的input元素
$("input[name*=text]") 选取拥有name属性含有text的input元素
$("input[class~=text]") 选取拥有class属性以空格分割的值中含有text的input元素
[attribute1][attribute2][attributeN]   合并多个属性过滤选择器
:enabled             // 选取所有可用元素
:disabled            // 选取所有不可用元素
:checked             // 选取所有被选中的元素(单选框,复选框)
$("input:checked") 选取所有被选中的<input>元素
:selected           // 选取所有被选中的选项元素(下拉列表)
$("select option:selected")  选取所有被选中的选项元素

:text              // 选择所有的单行文本框
$(":text")         // 选取所有的单行文本框

:password          // 选择所有的密码框
:button            // 选择所有的按钮

:checkbox          // 选择所有的多选框

五、jQuery中的Delegate()函数有什么作用?

delegate()会在以下两个情况下使用到:

1、如果你有一个父元素,需要给其下的子元素添加事件,这时你可以使用delegate()了,代码如下:

$(“ul”).delegate(“li”, “click”, function(){ 
    $(this).hide(); 
});

2、当元素在当前页面中不可用时,可以使用delegate()

六、$(document).ready()方法和window.onload有什么区别?

(1)、window.onload方法是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行的。

(2)、$(document).ready() 方法可以在DOM载入就绪时就对其进行操纵,并调用执行绑定的函数。

七、如何用jQuery禁用浏览器的前进后退按钮?

<script type="text/javascript" language="javascript">  

    $(document).ready(function() {
    window.history.forward(1);
     //OR window.history.forward(-1);  
    });

</script>

八、jquery中 $ .get()提交和$.post()提交有区别吗?

相同点:都是异步请求的方式来获取服务端的数据;

1、请求方式不同: $ .get() 方法使用GET方法来进行异步请求的。$.post() 方法使用POST方法来进行异步请求的。

2、参数传递方式不同:get请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给Web服务器的,这种传递是对用户不可见的。

3、数据传输大小不同:get方式传输的数据大小不能超过2KB 而POST要大的多

4、安全问题: GET 方式请求的数据会被浏览器缓存起来,因此有安全问题。

九、jQuery的事件委托方法bind 、live、delegate、on之间有什么区别?

(1)、bind 【jQuery 1.3之前】

定义和用法:主要用于给选择到的元素上绑定特定事件类型的监听函数;

语法:bind(type,[data],function(eventObject));

特点:

(1)、适用于页面元素静态绑定。只能给调用它的时候已经存在的元素绑定事件,不能给未来新增的元素绑定事件。

(2)、当页面加载完的时候,你才可以进行bind(),所以可能产生效率问题。

实例如下:$( “#members li a” ).bind( “click”, function( e ) {} );

(2)、live 【jQuery 1.3之后】

定义和用法:主要用于给选择到的元素上绑定特定事件类型的监听函数;

语法:live(type, [data], fn);

特点:

(1)、live方法并没有将监听器绑定到自己(this)身上,而是绑定到了this.context上了。

(2)、live正是利用了事件委托机制来完成事件的监听处理,把节点的处理委托给了document,新添加的元素不必再绑定一次监听器。

(3)、使用live()方法但却只能放在直接选择的元素后面,不能在层级比较深,连缀的DOM遍历方法后面使用,即 $ (“ul”").live…可以,但$(“body”).find(“ul”).live…不行;

实例如下:$( document ).on( “click”, “#members li a”, function( e ) {} );

(3)、delegate 【jQuery 1.4.2中引入】

定义和用法:将监听事件绑定在就近的父级元素上

语法:delegate(selector,type,[data],fn)

特点:

(1)、选择就近的父级元素,因为事件可以更快的冒泡上去,能够在第一时间进行处理。

(2)、更精确的小范围使用事件代理,性能优于.live()。可以用在动态添加的元素上。

实例如下:

$("#info_table").delegate(“td”,“click”,function(){/显示更多信息/});

$(“table”).find("#info").delegate(“td”,“click”,function(){/显示更多信息/});

(4)、on 【1.7版本整合了之前的三种方式的新事件绑定机制】

定义和用法:将监听事件绑定到指定元素上。

语法:on(type,[selector],[data],fn)

实例如下:$("#info_table").on(“click”,“td”,function(){/显示更多信息/});参数的位置写法与delegate不一样。

说明:on方法是当前JQuery推荐使用的事件绑定方法,附加只运行一次就删除函数的方法是one()。

总结:.bind(), .live(), .delegate(),.on()分别对应的相反事件为:.unbind(),.die(), .undelegate(),.off()
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: jquery常见面试题包括获取具备特定属性的选中项以及选择指定的DOM元素。对于获取具备multiple=true属性的选中项,可以使用下面的jQuery选择器:$('[name=NameOfSelectedTag]:selected'),其中NameOfSelectedTag是选中项的名称。这个选择器会返回所有具备该属性的选中项。另一个常见的面试题是如何选择嵌套在段落(<p>标签)内部的超链接(<a>标签)。可以使用以下的jQuery代码片段来完成这个选择器:$('p a'),这个选择器会选择所有嵌套在段落内部的超链接。除了选择特定的HTML元素,还可以使用$()函数将任何对象包裹成jQuery对象,并调用定义在jQuery对象上的多个不同方法。这个函数还可以接受一个选择器字符串作为参数,返回一个包含所有匹配的DOM元素数组的jQuery对象。另外,如果需要选择网页上的5个<div>元素,可以使用以下的jQuery选择器:$('div'),这会返回所有的<div>元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [最常见的20个jQuery面试问题及答案](https://blog.csdn.net/cwzhsi/article/details/50698292)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值