jQuery笔试题
jQuery笔试题
1、页面中有一个select标签,代码如下:
<select id="sel">
<option value="0">请选择</option>
<option value="1">选项一</option>
<option value="2">选项二</option>
<option value="3">选项三</option>
<option value="4">选项四</option>
</select>
要使“选项四”选中的正确写法。(B)
A:$(“#sel”).val(“选项四”);
B:$(“#sel”).val(“4”);
C:$(“#sel > option:eq(4)”).checked; // 首先,selected标签中,option是否别选中应该使用selected,而不是checked(用于单选和复选)
D:$(“#sel option:eq(4)”).attr(“selected”); // 愿意是想将索引为4 的option的selected的值赋值为selected(即true),但是少了赋值
所以 D选项正确答案应该是:$(“#sel option:eq(4)”).attr(“selected”, “selected”) 或者 $(“#sel option:eq(4)”).attr(“selected”, true)
这是因为select标签中的value值就是被选中选项的value值,所以$(“#sel”).val(“4”);这个就是将select标签value值设置为4,相应的就是选中了选项四。
番外:
$("#sel > option:eq(4)").is(":selected")
选中select标签子代option索引为4 的元素,从0开始;is 是判断是否有selected,即是否被选中;:selected 是伪类选择器,这个会直接返回一个boolean值。
2、页面中有一个性别单选按钮,请设置”男”为选中状态。代码如下:
<input type="radio" name="sex" />男
<input type="radio" name="sex" />女
A:$(“sex[0]”).attr(“checked”,true);
B:$(“#sex[0]”).attr(“checked”,true); // A和B两个使用 sex[0] 这种写法就是不合法的
C:$(“[name=sex]:radio”).attr(“checked”,true);
D:$(“:radio[name=sex]:eq(0)”).attr(“checked”,true);
正确答案:D
这是因为 [name=sex] 表示选中 name属性为sex 的标签,$(“ “) 里面使用组合选择,总体来说就是选择类型为 radio ,并且name属性为sex ,且索引为0 的元素,并将它的checked 赋值为true。
Tip:若果是关于设置boolean的,我们最后用prop
还可以这样写:
$("[name=sex]:radion:eq(0)").prop("checked",checked)
$("[name=sex]:radion:eq(0)").prop("checked",true) // attr 同理
// 使用 :first
$("[name=sex]:first").prop("checked",true)
3、下面说法不正确的是(A)
A:$(“:hidden”)选取<input>的type类型是hidden的不可见元素。
B:$(“div >span”)选取<div>元素下元素名是<span>的子元素。
C:$(“div :first”)选取所有<div>元素中第一个<div>元素。
D:$(“input:gt(1)”)选取索引值大于1的<input>元素。
:hidden() 过滤器,用于选择被影藏的元素,而A错是因为不仅仅是type=hidden的,是包括页面中全部的被影藏元素
gt( ) 是jQuery选择器过滤器之一,用于选择元素索引大于指定值的元素。 即,greater than (大于)
4、如果需要匹配包含文本的元素,用下面哪种来实现 (B)
A:text() B:contains()
C:input() D:attr(name)
contains( ) 一个过滤器,是jQuery中筛选元素的,用于选择包含指定文本的元素。
需要注意一点,contains 是模糊匹配,比如:
<div>这是一个男人</div>
<p>这里有一个男孩</p>
<script>
$(":contains('男')").css("color", "red");
</script>
虽然我选择了匹配 “ 男 ”的文本,但是也有可能会选中其他中文,比如“女”,所以最好使用 .filter( )
5、下面不属于Jquery的ajax全局事件的是 (C)
A:ajaxComplete(callback) B:ajaxSuccess(callback)
C:$.post(url) D:ajaxSend(callback)
全局事件,监督整个程序的Ajax发送,然后执行特定的代码。比如:
ajaxComplete(callback) :在每个Ajax请求完成时触发,无论成功或失败。
多选
1、获取<div id=”content”>内容…</div>标签里的文本内容。(BC)
A: $(“#content”).val(); B: $(“#content”).html();
C: $(“#content”).text(); D: $(“#content”).innerHTML();
text() 获取纯文本内容,html() 获取包括HTML标签的文本内容
而innerHTML是原生DOM里面的属性,不是jQuery里面的方法。是用于获取内容包含HTML标签,也可以设置。
innerText则是不包含HTML,可获取纯文本和设置。
2、案例代码如下
<body>
<form>
用户名:<input type="text" id="username" name="username" />
密码:<input type="password" id="pwd" name=" pwd "/>
</form>
</body>
请用jquery选择器选取username文本框输入值的内容:(ABCD)
A: $(“#username”).val();
B: $(“input”)[0].value;
C: $(“input[name=username]”).val();
D: $(“:input[name=username]”).val();
需要注意的是:C和D有不同,C选项的input[name=username],表示的是表单里面的input 元素,name属性为username 的
而D选项的 :input[name=username],与C只差了一个冒号,但是D表达的是所有表单元素里面name属性为username的。
:input 是jQuery里面一个特有的选择器,表示表单里所有的元素,包含:input、select、textarea等
3、执行下面代码:
$(document).ready(function(){
var array =[‘墨家’,’墨子’];
var str = “[“;
$.each( array, function(parm1,parm2){
str += “{parm1: “ + parm1 + “,” + “parm2: “ + parm2 + “},”;
});
str = str.substring(0, str.length - 1) + “]”;
alert(str);
});
请写出打印结果: [{parm1:0,parm2: ‘墨家’},{parm1:1,parm2: ‘墨子’}]
需要理解,$.each(arrayObject, function(index, element) {
})
这是jQuery的 $.each() 方法,用于迭代数组或者对象,each里面第一个参数为数组或对象,第二个是一个函数,每个元素会执行这个函数,而函数里面两个参数,第一个是索引,第二个是值。
其次,substring() 方法是JavaScript里面的一个方法,用于获取子串