2017-03-01 39 views
7

W moim JavaScript Chcę sprawdzić, czy element z konkretnym ID to istnieje czy nie, próbowałem go z 2 sposobyJak znaleźć, jeśli element o konkretnym identyfikatorze nie istnieje lub nie

1).

var myEle = document.getElementById("myElement"); 
if(myEle == null){ 
    var myEleValue= document.getElementById("myElement").value; 
} 

2).

if(getElementById("myElement")){ 
    var myEleValue= document.getElementById("myElement").value; 
} 

ale daje ten sam błąd jak poniżej -

Obiekt oczekiwany

+1

To jest 'document.getElementById()' – Andreas

+0

W pierwszym przypadku mówisz, że jeśli element ma wartość null, to uzyskaj jego wartość, powinieneś sprawdzić, czy to nie jest null (lub raczej, jeśli jest to prawda, jak robisz w przypadku 2). Inną rzeczą jest użycie 'document.getElementById()' – winhowes

+0

tak samo zrobiłem w moim kodzie, tutaj przez pomyłkę –

Odpowiedz

14
var myEle = document.getElementById("myElement"); 
    if(myEle){ 
     var myEleValue= myEle.value; 
    } 
+0

Masz na myśli document.getElementById ("myElement") to zwraca wartość boolean? –

+0

użyj 'if (myEle! = Null) {}' –

+0

@AmitaPatil no it does not, ale możesz sprawdzić, czy zmienna jest zdefiniowana tylko sprawdzając ją w if, jeśli zmienna myEle nie jest zdefiniowana, czy wybierze inny blok kodu –

1

document.getElementById ('yourId')

jest poprawny sposób.

Dokument odnosi się do dokumentu HTML załadowanego do DOM.

i wyszukuje identyfikator, przy użyciu funkcji getElementById() która przyjmuje parametr id elementu

rozwiązanie będzie:

var elem = (document.getElementById ('myelement')) ? document.getElementById ('myElement'). wartość: '';

/* będzie przypisać wartość lub dać Tobie i pusty ciąg znaków */

1

Można po prostu użyć if(yourElement)

var a = document.getElementById("elemA"); 
 
var b = document.getElementById("elemB"); 
 

 
if(a) 
 
    console.log("elemA exists"); 
 
else 
 
    console.log("elemA does not exist"); 
 
    
 
if(b) 
 
    console.log("elemB exists"); 
 
else 
 
    console.log("elemB does not exist");
<div id="elemA"></div>

2

Musisz określić, który obiekt jesteś wywołanie getElementById z. W takim przypadku możesz użyć dokumentu. Nie można również wywoływać wartości .value bezpośrednio na żadnym elemencie. Na przykład, jeśli element jest textbox. Wartość zwróci wartość, ale jeśli jest to div, nie będzie mieć wartości.

też mieć zły stan, jesteś sprawdzanie

if (myEle == null)

które należy zmienić, aby

if (myEle! = null)

var myEle = document.getElementById("myElement"); 
if(myEle != null) { 
    var myEleValue= myEle.value; 
} 
+0

lepiej użyj 'myEle.value' wewnątrz bloku. –

+0

Masz rację. Dzięki! – Armin