正確使用判斷對象是否存在應(yīng)該用:if($("#id").length0){}else{} 使用jQuery 對象的屬性 length 來判斷,如果 0 就存在。或者 if($("#id")[0]){} else {} 或者直接使用原生的 Javascript 代碼來判斷: if(document.getElementByIdx_x_xx_x("id")){} else {} 或者var g = document.getElementById; if (g('addrId_324') != null) { //判斷是否存在這個id號,不存在則為null g('addrId_' + selAddressId).className = ''; } JQuery 判斷某個屬性是否存在 hasAttr在JQuery編碼中,我們會判斷元素是否存在某個屬性.比如是否包含 class="new"的樣式呢.JQuery判斷就非常簡單了,因為有 hasClass這個方法 $("input[name=new]").hasClass("new") 即可判斷. 這時就沒有現(xiàn)成的方法了. 如果存在某個屬性 $("#aid").attr("rel") 會返回 rel的值,如果不存在 rel屬性則會返回"undefined" undefined 就是 undefined類型 , if($("#aid").attr("rel")=="undefined") 這個判斷可能不成立. 因為類型不相同. 建議使用 if(typeof($("#aid").attr("rel"))=="undefined") 即可 判斷JS對象是否擁有某屬性兩種方式,但稍有區(qū)別1,in 運算符123varobj = {name:'jack'};alert('name'inobj); // -- truealert('toString'inobj); // -- true可看到無論是name,還是原形鏈上的toString,都能檢測到返回true。 2,hasOwnProperty 方法123varobj = {name:'jack'};obj.hasOwnProperty('name'); // -- trueobj.hasOwnProperty('toString'); // -- false原型鏈上繼承過來的屬性無法通過hasOwnProperty檢測到,返回false。
創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鶴崗做網(wǎng)站,已為上家服務(wù),為鶴崗各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
忘卻jquery,使用JavaScript原生API做法是學(xué)習(xí)jQuery和JavaScript實現(xiàn)相同操作的等價代碼算法。
選擇元素
//jQuery
var ele = $(".ele");
//javascript
var ele = document.querySelectAll('.ele');
//函數(shù)法
var $ = function(ele){
return document.querySelectAll(ele);
}
var ele = $('.ele'); //調(diào)用
創(chuàng)建元素
//jquery
var newEle = $('divxxx/div');
//javascript
var newEle = document.createElement('divxxx/div');
添加事件監(jiān)聽器
//jQuery
$('.ele').on('event',function(){
});
//javascript
[].forEach.call(document.querySelectAll('.ele'),function(ele){
ele.addEventListener('event',function(){
},false);
})
設(shè)置/獲取屬性
//jQuery
$('.ele').attr('key','value');
$('.ele').attr('key');
//javascript
document.querySelector('.ele').setAttribute('key','value');
document.querySelector('.ele').getAttribute('key');
添加/移除/切換類
//jQuery
$('.ele').addClass('class');
$('.ele').removeClass('class');
$('.ele').toggleClass('class');
//javascript
document.querySelector('.ele').classList.add('class');
document.querySelector('.ele').classList.remove('class');
document.querySelector('.ele').classList.toggle('class');
附加內(nèi)容(Append)
//jquery
$('.ele').append('divxxx/div');
//javascript
document.querySelector('.ele').appendChild(document.createElement('divxxx/div'));
克隆元素
//jQuery
var cloneEle = $('.ele').clone();
//javascript
var cloneEle = document.querySelector('.ele').cloneNode(true);
移除元素
//jQuery
$('.ele').remove();
//javascript
remove('.ele');
function remove(ele){
var toRemove = document.querySelector(ele);
toRemove.parentNode.removeChile(toRemove);
}
獲取父元素
//jQuery
$('.ele').parent();
//javascript
document.querySelector('.ele').parentNode;
上一個/下一個元素
//jQuery
$('.ele').prev();
$('.ele').next();
//javascript
document.querySelector('.ele').previousElementsibling;
document.querySelector('.ele').nextElementSibling;
XHR或AJAX
全選復(fù)制放進(jìn)筆記//jQuery
$.get('url',function(data){
})
$.post('url',{data: data},function(){
})
//javascript
//get
var xhr = new XMLHttpRequest();
xhr.open('GET',url);
xhr.onreadystatechange = function(data){
}
xhr.send();
//post
var xhr = new XMLHttpRequest();
xhr.open('POST',url);
xhr.onreadystatechange = function(data){
}
xhr.send({data: data});
內(nèi)置(Build-in)對象與原生(Naitve)對象的區(qū)別在于:前者總是在引擎初始化階段就被創(chuàng)建好的對象,是后者的一個子集;而后者包括了一些在運行過程中動態(tài)創(chuàng)建的對象。
javascript就是js,實例:document.getElementById('id');
原生JavaScript也是就是,實例:document.getElementById('id');
jQuery是基于js開發(fā)的一套框架,實例:$('#id');
DOM就是實例獲取的對象,也稱element。
script?type="text/javascript"
//定義XmlhttpRequest對象
var?xmlrequest;
//完成對對象XmlHttpRequest對象的初始化
function?createXmlHttpRequest(){
if(window.XMLHttpRequest){
//DOM?2瀏覽器
xmlrequest?=?new?XMLHttpRequest();
}else?if(window.ActiveXObject){
//IE?瀏覽器
try{
xmlrequest?=?new?ActiveXOPbject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlrequest?=?new?ActiveXObject("Microsoft.XMlHTTP");
}catch(e){
}???????????????????
}
}
}
//事件處理函數(shù),當(dāng)下拉列表選擇改變時,觸發(fā)改事件
function?change(id){
//初始化XMLHttpRequest對象
createXmlHttpRequest();
//設(shè)置請求響應(yīng)的URL
var?url?=?"second.jsp?id="+id;
//打開與服務(wù)器響應(yīng)地址的連接xmlrequest.open(method,url,async,user,password)
xmlrequest.open("POST",url,true);
//設(shè)置請求頭(Post必須設(shè)置,GET方式不需要)
xmlrequest.setRequestHeader("Context-Type","application/x-www-form-urlencoded");
//設(shè)置處理響應(yīng)的回調(diào)函數(shù),此函數(shù)processResponse是自己定義的
xmlrequest.onreadystatechange?=?processResponse;
//發(fā)送請求
xmlrequest.send(null);
}
//定義處理響應(yīng)的回調(diào)函數(shù)
function?processResponse(){
//響應(yīng)完成且響應(yīng)正常
if(xmlrequest.readyState?==?4){
if(xmlrequest.status?==?200){
//信息已經(jīng)成功返回,開始處理信息
var?headers?=?xmlrequest.getAllResponseHeaders();
//通過警告框輸出相應(yīng)頭
alert("相應(yīng)頭的類型?"+?typeof?headers?+?"\n"?+?headers);
//在頁面輸出所有的相應(yīng)頭
document.getElementById("output").innerHTML?=?headers;
}else{
//頁面不正常
window.alert("您所請求的頁面異常。");
}
}
}
/script
采納啊。。。。。。。。。。。。。。。
不可以 主要是由于現(xiàn)在的javascript運行都是需要引擎的(如v8),且javascript是腳本語言、弱類型語言,故上述幾個現(xiàn)實造成了javascript的運行效率比較慢,導(dǎo)致部分如游戲、視頻等需要大運算量的APP還是無法勝任,javascript代替原生的可能性不能說沒有,但道路還是很漫長的