1.$('selector')获取的永远是对象,即使该对象在网页上没有。因此当使用jQuery检查某个元素在网页上是否存在时,不能使用一下代码:
if($("#test")){
alert("有东西")
}
而是应该取到元素的长度来判断,代码如下:
if($("#test").length >0){
alert("有东西")
}else{
alert("没有有东西!!!")
}
或转换为dom对象来判断
if($("#test")[0]){
alert("有东西")
}else{
alert("没有有东西2222222222")
}
2.$("prev+next")选择器用next()方法替代,$("prev~next")选择器用nextAll()方法替代
$(".one + idv") == $(".one").next("div")
$("#prev~div") == $("#prev").nextAll("div");
$("#prev~div")或$("#prev").nextAll("div")只选择"#prev"元素后面的同辈<div>元素。而sibling()方法与前后位置无关,只要是同辈都能匹配
3.:input
匹配所有 input, textarea, select 和 button 元素
4.选择器中的一些注意事项
4.1选择器中含有".","#","("或"]"等特殊字符
根据W3C的规定,属性值中是不能包含这些特殊字符的,但在实际项目中偶尔会遇到表达式中含有"#"和"."等特殊字符,如果按照普通的方式去处理的话就会出错。解决此类错误的方法就是使用转义字符。
HTML代码:
<div id="id#b">bb</div>
<div id="id[1]">bb</div>
$("#id#b") $("#id[1]")错误的
$("#id\\#b") $("#id\\[1\\]")正确的
5.内部节点移动
HTML代码:
<ul id="ulId">
<li title="苹果">苹果</li>
<li title="橘子">橘子</li>
<li title="菠萝">菠萝</li>
</ul>
/*移动节点*/
var $li_1 = $("#ulId li:eq(1)");
var $li_2 = $("#ulId li:eq(2)");
$li_2.insertBefore($li_1);
6.删除节点,并且可以传递参数
var $li_1 = $("#ulId li:eq(1)").remove();;
$("#ulId li").remove("[title!=橘子]"); //正确
7.替换节点replaceWith和replaceAll功能一样,只是replaceAll用前面的替换后面的。
$("p").replaceWith("<b>你最喜欢的水果是?</b>")
$("<b>你最喜欢的水果是?</b>").replaceAll("p");
8.包裹节点
wrapAll()方法会将所有匹配的元素用一个元素来包裹。它不同于wrap()方法,wrap()方法是将所有的元素进行单独的包裹。
9.在css中有以下两条规定
a.如果给一个元素添加多个class值,那么就相当于合并了他们的样式
b.如果有不同的class设定了同一样式,则后者覆盖前者。
10.删除样式removeClass
$("p").removeClass("hign"); //删除p里的hign样式
$("p").removeClass("hign another"); //删除p里的hign和another样式
$("p").removeClass(); //删除p元素里边所有样式
注意:所以用removeClass一定要指定具体名称