2012-03-14 16 views
17

¿Cuál es la sintaxis jquery correcta para una llamada getElementsByName?jQuery equivalente a "getElementsByName"

Aquí está mi código javascript:

var test = document.getElementsByName(tableName)[0]; 

usar este devuelve un valor diferente:

var test = $("[name=tableName]"); 

Gracias de antemano

+0

¿Puede dar un ejemplo de los resultados que obtiene y cómo son diferentes? – deltree

Respuesta

4

Retire el índice de la primera declaración

Estos son iguales.

var test = document.getElementsByName(tableName); 
var test = $("[name=tableName]"); 
+0

¿cómo puedo acceder al mismo índice [0] en jquery? – user1258430

+0

$ ("[name = tableName]"). Get (0); – westo

+2

@ user1258430 Simplemente '[0]' funciona ... '$ (" ... ") [0]' –

2

"[name=tableName]" es mala sintaxis de 2 maneras. En primer lugar, usted debe poner su nombre entre comillas, por lo que debe ser "[name='tableName']" y en segundo lugar, en el primer caso, está utilizando una variable y en el segundo, una cadena, por lo que en realidad se shoudl ser "[name='" + tableName + "']"

buena llamada También en el hecho de que tiene un índice en su llamada getelementsbyname(), si selecciona el elemento [0], solo devolverá un artículo.

+0

¿cómo puedo devolver el mismo índice [0] en una sintaxis jquery? – user1258430

+1

'$ (" [name = '"+ tableName +"'] ").first(); ' – deltree

21

Use comillas alrededor de la attribute selector:

$('[name="somenamehere"]'); 

Si es necesario utilizar una variable dentro de un selector, es necesario utilizar la concatenación de cadenas para obtener el valor de la variable:

$('[name="' + tableName + '"]'); 

Normalmente, uno debe evitar el uso del atributo [name] a favor del atributo [id], porque la selección sería más simple como:

$('#someidhere'); 
-or- 
$('#' + tableID); 
+0

¿No funciona con comillas en versiones anteriores de jQuery? –

+0

@ ŠimeVidas, recuerdo claramente haber tenido problemas con las comillas en los selectores de atributos con una versión anterior de jQuery. Es bastante posible que esté recordando mal. – zzzzBov

+0

@ ŠimeVidas, creo que lo tuve al revés, creo que las versiones anteriores de jQuery * solo * admiten valores de atributo entrecomillados, y que las versiones más recientes admiten valores de atributo entrecomillados o no. – zzzzBov

0

si desea obtener un valor de elemento de utilizar este código:

var test1 = $("[name='tableName']").val(); 
alert(test1); 

Estos son iguales para obtener el valor del índice específico []:

Para mismo índice [0]

var test2 = $("[name='arryname[]']")[0]; 
alert(test2.value); 

var test3 = $("[name='arryname[]']").get([0]); 
alert(test3.value); 
Cuestiones relacionadas