Necesito cambiar la identificación de un elemento usando jQuery.
Al parecer, estos no funcionan:
jQuery(this).prev("li").attr("id")="newid"
jQuery(this).prev("li")="newid"
Descubrí que puedo hacer que suceda con el siguiente código:
jQuery(this).prev("li")show(function() {
this.id="newid";
});
Pero eso no me parece correcto. Debe haber una mejor manera, ¿no? Además, en caso de que no exista, ¿qué otro método puedo usar en lugar de mostrar / ocultar u otros efectos? Obviamente no quiero mostrar / ocultar o afectar el elemento cada vez, solo para cambiar su ID.
(Sí, soy un novato jQuery).
Editar
No puedo usar clases en este caso, debo usar ID.
javascript
jquery
yoavf
fuente
fuente
foo = 1
), un miembro de un objeto (foo.bar = 2
ofoo['bar'] = 2
) o un subíndice de matriz (foo[0] = 3
), pero asignar a una expresión, como el resultado de un operador ((x + b) = 5
) o el resultado de una llamada a la función (foo() = 1
,foo(x).bar(y) = 7
) no tiene ningún sentido, por lo que definitivamente no será la forma en que funcionan las cosas en jQuery o cualquier otra biblioteca de JavaScript.Respuestas:
Su sintaxis es incorrecta, debe pasar el valor como segundo parámetro:
fuente
.prop( ... )
lugar de.attr( ... )
?id
aún debe configurarse usandoattr(...)
UNA OPCIÓN PREFERIDA
.attr
es usar.prop
así:.attr
recupera el atributo del elemento mientras que.prop
recupera la propiedad a la que hace referencia el atributo (es decir, lo que realmente tiene la intención de modificar)fuente
.prop()
método proporciona una forma de recuperar explícitamente los valores de propiedad, mientras.attr()
recupera los atributos".Lo que quieres decir es:
Eso establecerá la ID a la nueva ID
fuente
Hice algo similar con esta construcción
fuente
No estoy seguro de cuál es su objetivo, pero ¿podría ser mejor usar addClass en su lugar? Quiero decir que una identificación de objetos en mi opinión debe ser estática y específica para ese objeto. Si solo está tratando de cambiarlo para que no se muestre en la página o algo así, pondría esos detalles en una clase y luego lo agregaría al objeto en lugar de tratar de cambiar su ID. Una vez más, lo digo sin comprender tu objetivo subyacente.
fuente
fuente
Esto podría hacer para todo propósito. Simplemente agregue antes de que su cuerpo cierre la etiqueta y no pueda agregar Jquery.min.js
fuente
La respuesta de Eran es buena, pero añadiría eso. Debe ver cualquier interactividad que no esté en línea con el objeto (es decir, si un evento onclick llama a una función, aún lo hará), pero si hay algún manejo de eventos javascript o jQuery adjunto a esa ID, básicamente se abandonará :
Si la ID ahora se cambia a # myID123, la función adjunta arriba ya no funcionará correctamente desde mi experiencia.
fuente