⑴ 如何判斷js里的對象是否存在
首先檢查頁面是否有錯誤,是否出現xxx未定義的情況
然後可以alert下,例如:
varstudent=newfunction(){
this.id="01";
this.name="aa";
}
alert(student);
alert(student.id);
如果是[objectObject],說明存在
如果是undefined或null則說明不存在。
也可以使用js斷點調試工具,跟蹤調試,比如firebug
⑵ js 怎麼判斷一個對象是否在數組里
|js沒有直接判斷數組中是否存在某一值,最笨的方法是把數組變為鍵值對的對象,版如:
varobj={};
vararr=[1,2,3];
for(vari=0;i<arr.length;i++){
varv=arr[i];
if(obj[v]||權obj[v]==0){//這里判斷v是否已經添加到obj中,如果數組為數字時,需要注意if(0)為true
continue;//已經存在就跳過
}else{
obj[v]=v;
}
}
alert(obj[1]);//存在數組中,true
alert(obj[4]);//不存在數組中,false
⑶ js 如何判斷是不是object
使用JS中的typeof方法來判斷,代碼如下:
<script type="text/javascript">
var obj={"name":"aaa"};
if( typeof(obj)=="object" ){
alert("它是object");
}
</script>
⑷ 如何用JS判斷網頁中某個id的網頁元素是否存在
在傳統的Javascript里,當我們對某個頁面元素進行某種操作前,最好先判斷這個元素是否存在。原因是對一個不存在的元素進行操作是不允許的。例如:
document.getElementById("someID").innerText("hi");
如果ID為"someID"的元素不存在,我們將得到Javascript運行錯誤:document.getElementById("someID") is null
正確的寫法應該是:
obj = document.getElementById("someID");
if (obj){
obj.innerText("hi");
}
那麼在jQuery,我們如何判斷頁面元素存在與否呢?如果參照上面的傳統Javascript的寫法,我們第一個想到的辦法一定是:
if ($("#someID")){
$("#someID").text("hi");
}
可是這么寫是不對的!因為jQuery對象永遠都有返回值,所以$("someID")總是TRUE,IF語句沒有起到任何判斷作用。正確的寫法應該是:
if ( $("#someID").length > 0 ) {
$("#someID").text("hi");
}
注意:判斷某個頁面元素存在與否在jQuery實際上是沒有必要的,jQuery本身會忽略對一個不存在的元素進行操作,並且不會報錯。
⑸ js怎麼判斷多層級對象是否存在
第一種寫法
根據直覺,你可能覺得可以這樣寫:
代碼如下:
if (!myObj) {
myObj = { };
}
但是,運行這段代碼,瀏覽器會直接拋出ReferenceError錯誤,導致運行中斷。請問錯在哪裡?
對了,if語句判斷myObj是否為空時,這個變數還不存在,所以才會報錯。改成下面這樣,就能正確運行了。
代碼如下:
if (!myObj) {
var myObj = { };
}
為什麼加了一個var以後,就不報錯了?難道這種情況下,if語句做判斷時,myObj就已經存在了嗎?
要回答這個問題,就必須知道Javascript解釋器的工作方式。Javascript語言是"先解析,後運行",解析時就已經完成了變數聲明,所以上面的代碼實際等同於:
代碼如下:
var myObj;
if (!myObj) {
var myObj = { };
}
因此,if語句做判斷時,myObj確實已經存在了,所以就不報錯了。這就是var命令的"代碼提升"(hoisting)作用。Javascript解釋器,只"提升"var命令定義的變數,對不使用var命令、直接賦值的變數不起作用,這就是為什麼不加var會報錯的原因。
⑹ js判斷文件是否存在
判斷客戶端文件時,可以用
復制代碼代碼如下:
var fso,s=filespec; // filespec="C:/path/myfile.txt"
fso=new ActiveXObject("Scripting.FileSystemObject");
if(fso.FileExists(filespec))
s+=" exists.";
else
s+=" doesn't exist.";
alert(s);
判斷伺服器端(網路文件)時,可以用
代碼如下:
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET",yourFileURL,false);
xmlhttp.send();
if(xmlhttp.readyState==4){
if(xmlhttp.status==200)s+=" exists."; //url存在
else if(xmlhttp.status==404)s+=" doesn't exist."; //url不存在
else s+="";//其他狀態
}
alert(s);
可以<input style="width:100%" type="file" name="" id="" contentEditable="false" >把contentEditable設置成false限制用戶只能選擇文件,而不能隨便輸入.
⑺ js如何判斷頁面元素是否存在
這在IE瀏覽器中往往會彈出一個js錯誤提示框,影響用戶體驗。所以比較好的做法是,在訪問頁面元素的屬性或方法之前,先判斷此頁面元素是否存在。function f(elementId) { var obj = document.getElementById(elementId);if(obj) {// 相關操作}}上面的代碼是先通過document.getElementById()去獲取指定的頁面元素,然後通過if(obj)判斷頁面元素是否存在,如果存在則進行相關操作。
⑻ JS怎麼判斷一個對象是否為空
判斷一個對象是否為空,介紹如下三種判斷方法:
1、直接用for...in...遍歷屬性,結果為真是「非空數內組」,否容則是「空數組」,代碼如下:
if(Object.keys(obj).length==0){
console.log('空對象');
}else{
console.log('非空對象');
}