Foros del Web » Programando para Internet » Javascript »

Javascript , Atributos

Estas en el tema de Javascript , Atributos en el foro de Javascript en Foros del Web. Hola bueno les muestro más o menos mi problema es este @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function $ ( id ) { document. ...
  #1 (permalink)  
Antiguo 13/03/2012, 15:49
Avatar de Ex_shadow  
Fecha de Ingreso: febrero-2012
Ubicación: Calera Avellaneda, Buenos Aires, Argentina, Argentina
Mensajes: 95
Antigüedad: 12 años, 1 mes
Puntos: 4
Pregunta Javascript , Atributos

Hola bueno les muestro más o menos mi problema es este


Código Javascript:
Ver original
  1. function $(id) { document.getElementById(id);}
  2.  
  3. function Atributo (name){ document.createAttribute(name); }

Código HTML:
Ver original
  1. <script type="application/javascript" language="javascript">
  2. $('Slider').Atributo('name');
  3. <div id="Slider"></div>

Lo que estoy queriendo hacer es una especie de jquery pero en español y sumamente nueva.

Probe este script y la verdad no me tira ningun error pero tampoco crea el atributo... por que puede ser?
  #2 (permalink)  
Antiguo 13/03/2012, 16:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Javascript , Atributos

Creo antes de querer hacer un framework en Javascript deberías de aprender Javascript, a tus funciones les hace falta el atributo return, aparte de que para crear el atributo tienes que actuar sobre el DOM del elemento, no sobre el de document.

Saludos.
  #3 (permalink)  
Antiguo 13/03/2012, 16:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Javascript , Atributos

Hola:

Vayamos por partes... En mi opinión usar un nombre como "$" es muy poco descriptivo (nunca me ha gustado)... y createAttribute no existe (lo que existe es setAttribute, pero con dos parámetros)...

Hace tiempo que no recomiendo una vieja página: Nuevo destripador


Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 13/03/2012, 16:57
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Javascript , Atributos

¡buenas gentes!
@caricatos, solo por comentar. no se si sabías pero document.createAttribute si existe, el cual genera un nodo attribute. resulta que en DOM los atributos también son nodos. en todo caso, comparto tu observación, seguramente habrá querido usar setAttribute.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 13/03/2012, 21:40
Avatar de Ex_shadow  
Fecha de Ingreso: febrero-2012
Ubicación: Calera Avellaneda, Buenos Aires, Argentina, Argentina
Mensajes: 95
Antigüedad: 12 años, 1 mes
Puntos: 4
Respuesta: Javascript , Atributos

Ahora si xD
@Caricatos & @Zerokilled

Es verdad queria usar setAttribute , pero como uso dreamweaver aveces para ver errores , esta vez me cago no mostrandome el setattribute hacia tiempo que no lo usaba, igual sigo con el mismo problema. cambie eso y nada...

  #6 (permalink)  
Antiguo 13/03/2012, 22:13
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Javascript , Atributos

no se si es que tienes experiencia en otros lenguajes pero las cosas no funcionan así en javascript. en jquery puedes hacer eso porque jquery funciona como un wrapper (envoltorio) y muchas de sus funciones devuelve el propio objeto, permitiendo así una cadena de invocación de funciones. si aún no haz leido temas referente a cómo trabajar con objetos, te recomiendo que lo hagas porque lo vas a necesitar mucho para el desarrollo.

el punto es que tus funciones no tienen ninguna relación entre si. es decir, no hay nada que los conecte de forma que puedas escribir las invocaciones como deseas. en primer lugar, la función dólar no devuelve explícitamente un valor, de modo que siempre devuelve undefined. segundo, undefined es un valor primitivo de javascript, de modo que no tiene propieades ni métodos. y tercero, aunque la función dolar devuelva el elemento creado, dicho objeto no tiene el método Atributo. es por eso que debes buscar material sobre cómo trabajar con objetos propios.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 13/03/2012, 22:26
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Javascript , Atributos

Uf, hay varias cosas/conceptos que deberías repasar.
Por ejemplo, si usás atributos personalizados, más vale usar html5 y data y dataset:
http://ejohn.org/blog/html-5-data-attributes/
http://www.javascriptkit.com/dhtmltu...tributes.shtml

Otra cosa, en algunos navegadores esto no funcionará:
Código PHP:
<script type="application/javascript" language="javascript"
el atributo language es obsoleto y no debe usarse
Deberías usar esto:
Código PHP:
<script type="text/javascript"
Otra cosa, si querés usar encadenamiento (chaining), en lugar de esto:
Código PHP:
function $(id) { document.getElementById(id);} 
deberías usar esto:
Código PHP:
function $(id) {return document.getElementById(id);} 
Y, finalmente, un ejemplo de lo que imagino que querés hacer:
Código PHP:
<!DOCTYPE html>
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title></title>
<
script type="text/javascript">
function $(
n){return document.getElementById(n);}
function 
setCustomAttribute(a,v,el){
        
el.setAttribute(a,v);
             
//si querés seguir encadenando, deberías retornar aquí el mismo objeto al que le estás añadiendo el atributo, es decir, deberías añadir un: return el;
}
function 
test(){
     
alert(this.getAttribute('data-algo'));
     
// o, en navegadores modernos: alert(this.dataset.algo);
}
function 
hacer(){
    
setCustomAttribute('data-algo','boo',$('pp'));
    $(
'pp')['onclick']=test;
}
onload=hacer;
</script>

</head>

<body>
<div id="pp">click</div>
</body>
</html> 
Edito se me adelantó el amigo zerokilled

Última edición por Panino5001; 13/03/2012 a las 22:32
  #8 (permalink)  
Antiguo 13/03/2012, 23:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Javascript , Atributos

Hola:

Cita:
Iniciado por zerokilled Ver Mensaje
...document.createAttribute si existe...
Tienes razón , pero como método del objeto document, y yo lo busqué en otros nodos como el body...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 13/03/2012 a las 23:11 Razón: Se coló una letra
  #9 (permalink)  
Antiguo 14/03/2012, 14:39
Avatar de Ex_shadow  
Fecha de Ingreso: febrero-2012
Ubicación: Calera Avellaneda, Buenos Aires, Argentina, Argentina
Mensajes: 95
Antigüedad: 12 años, 1 mes
Puntos: 4
Respuesta: Javascript , Atributos

Haber les aclaro mejor, lo que quiero es que puedan poner solamente en el index esto:

Código Javascript:
Ver original
  1. $('slider').Atributo('name','cuadro')

se que esto es posible ya que jquery es asi :
Código Javascript:
Ver original
  1. $('#Slider').attr('name', 'cuadro');

Los resultados serian
Código HTML:
Ver original
  1. <div id="slider" [COLOR="DarkRed"]name="cuadro"[/COLOR]></div>

Etiquetas: atributos, jquery, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:12.