Puede firebug me dicen que el código javascript nombre de un objeto?
-
05-07-2019 - |
Pregunta
He estado añadiendo un poco de javascript a mis páginas últimamente, pero he aprendido que todo en el clásico asiento-de-los-pantalones de moda.Cuando quiero que mi página para hacer algo, google y experimentar hasta conseguir el resultado que desea.
A menudo me han objetos en mis páginas que quiero activar/desactivar, ocultar, mostrar, etc., pero habiendo perdido la rigurosa introducción a javascript - no tengo ni idea de cómo estas cosas obtienen su nombre.I haga clic en los objetos con firebug abierta, esperando ver algún nombre totalmente calificado para el objeto, pero no la alegría.Sólo tengo que ser capaz de hacer algo como formulario.el botón.valor="algo", y la necesidad de saber el nombre de ese objeto.
Alguna idea?
Gracias.
Solución
Mientras ejecuta el código Javascript, tiene todas las variables locales en el ámbito actual, por lo que si tuviera el siguiente código:
var myObject = New Object();
myObject.Person = New Object();
myObject.Person.Name = "Mark";
myObject.Person.Gender = "Male";
myObject.Name = "object1";
... su objeto raíz sería myObject, y usted hace referencia a objetos descendientes a través de la notación de puntos.
Sin embargo, gracias a la implementación del DOM en el navegador, también hereda el objeto window
a través de la palabra clave this
. De hecho, puede omitir la palabra clave HTMLDocument
para situaciones simples, es decir, cuando no está utilizando cierres. Por lo tanto, puede acceder a las funciones de Javascript en el nivel superior simplemente usando el nombre de la función.
Si desea acceder a elementos específicos, como suena como si lo deseara, necesita aprender el DOM y no usar la sintaxis que estaba sugiriendo (eso suena como Javascript de los años 90). El elemento raíz que necesita saber es el objeto document
, al que se accede mediante la propiedad Id
. Puede descubrir elementos con atributos específicos Name
(no getElementById
) utilizando el método childNodes
del elemento del documento. Por supuesto, ayuda si le has dado a tu elemento una identificación única desde el principio. También puede usar recursivamente la colección getElementsByTagName
para iterar manualmente a través de elementos hasta que encuentre lo que desea. Alternativamente, si realmente no puede proporcionar un Id, también puede usar el método <=>, que se adjunta a cada elemento en el DOM.
Ejemplo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
<META NAME="Generator" CONTENT="TextPad 4.6">
<META NAME="Author" CONTENT="?">
<META NAME="Keywords" CONTENT="?">
<META NAME="Description" CONTENT="?">
<SCRIPT LANGUAGE="Javascript">
<!--
function DoSummat()
{
var divInside = document.getElementById("Inside");
divInside.textContent = "This text will appear inside.";
}
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?">
<FORM>
<INPUT TYPE="BUTTON" onclick="DoSummat();" NAME="MyButton" VALUE="Press Me">
</FORM>
<DIV ID="Outside">
<DIV ID="Middle">
<DIV ID="Inside"></DIV>
</DIV>
</DIV>
</BODY>
</HTML>
Otros consejos
generalmente se identifican usando el atributo id
. Ejemplo:
<input type="submit" id="saveButton" value="Save" />
Puede usar el método getElementById
para obtener una referencia a un elemento:
var b = document.getElementById('saveButton');
b.value = 'Saving...';
Bueno, dado que dio el ejemplo form.button.value="something"
, supongo que desea controlar los objetos HTML. Puede asignarles un id, por ejemplo: & Lt; form id = & Quot; my_form & Quot; ... y luego obtener elementos por id de JS, como incluso se llama a la función, getElementById () .
document.getElementById('my_form').button.value = 'something';
Su pregunta es muy vaga así que no te puedo dar la respuesta que usted necesita.
Object
s no puede ser "activado"/"desactivar" y no tienen "nombres" (que puede tener un name
de la propiedad, si eso es a lo que te refieres).
Por ejemplo, dado que:
var foo = {};
foo
es un variable que pasa a tener un valor que es un objeto.El objeto no es la variable (objeto de tener un "nombre").Dado:
bar = foo; foo = null;
foo
es ahora null
y el objeto que foo celebró ahora se almacena como bar
.
No podrás hacer eso. El nombre de la variable no está vinculado a la variable, y no se pasan entre funciones. Lo mejor que puede hacer es escribir una función para tomar una cadena y resolverla nuevamente en una variable:
function printVar(name) {
console.log(name + ": " + window[name]);
}
Por supuesto, hay un montón de cosas mal con esto. Recomiendo simplemente hacer dos llamadas de registro:
console.log("foo");
console.log(foo);
o, utilizando la sintaxis de estilo printf:
console.log("foo: %o", foo);