Ankpro veinticinco
Obtengo el siguiente resultado a través de ajax.
row=Shimla|1|http://vinspro.org/travel/ind/
yo quiero http://vinspro.org/travel/ind/ de eso. He usado la función de búsqueda y división, pero no funciona. por favor dime como puedo conseguirlo?
var result=$(row).split('|');
alert(result);
Chrome que muestra el siguiente error
Uncaught Error: Syntax error, unrecognized expression: Shimla|1|http://vinspro.org/travel/ind/
gabriele petrioli
los split
método creará una matriz. Por lo tanto, debe acceder al tercer elemento en su caso.
(las matrices están indexadas en 0) Necesitas acceder result[2]
para obtener la url
var result = $(row).text().split('|');
alert( result[2] );
No nos das suficiente información para saber qué row
es, exactamente… Entonces, dependiendo de cómo adquieras la variable row
es posible que deba realizar una de las siguientes acciones.
- si
row
entonces es una cadenarow.split('|');
- si es un elemento DOM entonces
$(row).text().split('|');
- si es un
input
elemento entonces$(row).val().split('|');
-
Jan, acaba de actualizar la respuesta… pero tendrás que decirnos dónde obtuviste
row
de..– Gabriele Petrioli
24 de diciembre de 2012 a las 19:38
-
no se que es
row
pero yo se que$(...)
es un objeto jQuery.– John Dvorak
24 de diciembre de 2012 a las 19:39
Sushanth —
Split crea una matriz. Puede acceder a los valores individuales utilizando un índice.
var result=$(row).val().split('|')[2]
alert(result);
O
var result=$(row).val().split('|');
alert(result[2]);
Si es elemento de entrada entonces necesitas usar $(row).val()
para sacar el valor..
De lo contrario, tendría que usar $(row).text()
o $(row).html()
-
tenga en cuenta que
$(...)
es un objeto jQuery. JQuery no tiene lasplit
método.– John Dvorak
24 de diciembre de 2012 a las 19:40
La función de división separa cada parte del texto con el separador que proporciona, y proporcionó “|”. Entonces, el resultado sería una matriz que contiene “Shimla”, “1” y “http://vinspro.org/travel/ind/”. Puede manipular eso para obtener el tercero, “http://vinspro.org/travel/ind/”, y aquí hay un ejemplo:
var str="Shimla|1|http://vinspro.org/travel/ind/";
var n = str.split('|');
alert(n[2]);
Como se mencionó en otras respuestas, este código diferiría dependiendo de si fuera una cadena ($(str).split(‘|’);), una entrada de cuadro de texto ($(str).val().split(‘|’) );), o un elemento DOM ($(str).text().split(‘|’);).
También puede usar JavaScript simple para obtener todo el contenido después de 9 caracteres, que sería “http://vinspro.org/travel/ind/”. Aquí hay un ejemplo:
var str="Shimla|1|http://vinspro.org/travel/ind/";
var n=str.substr(9);
alert(n);
-
su primera versión no funcionará… si el texto no se puede convertir a html (necesita etiquetas para ser) el jquery lo tratará como un selector y devolverá un objeto vacío. Asi que
.text()
on devolverá una cadena vacía.– Gabriele Petrioli
24 de diciembre de 2012 a las 19:53
-
@GabyakaG.Petrioli Depende. si es una cadena entonces es split(‘|’); si es un elemento DOM entonces text().split(‘|’); si es un elemento de entrada entonces val().split(‘|’);
– usuario752723
24 de diciembre de 2012 a las 19:59
-
Sí, pero en tu primer ejemplo estableces
str
ser una cadena simple, y luego lo hiciste$(str).text()
que volvería""
. ahora lo quitaste.text()
pero dejaste el$(str)
que devolvería un objeto jquery vacío. En su primer ejemplo, debería serstr.split('|')
– Gabriele Petrioli
24 de diciembre de 2012 a las 20:05
TJ-
¿Qué es fila?
Cualquiera de estos podría ser correcto.
1) Supongo que captura su respuesta ajax en una variable de javascript ‘fila’. Si ese es el caso, esto sería cierto.
var result=row.split('|');
alert(result[2]);
de lo contrario
2) Use esto donde $(row)
es un jQuery
objeto.
var result=$(row).val().split('|');
alert(result[2]);
[As mentioned in the other answer, you may have to use $(row).val()
or $(row).text()
or $(row).html()
etc. depending on what $(row) is.]
si la identificación de su entrada es la siguiente
<input type="text" id='kg_row1' >
entonces puedes explotar/dividir lo anterior con la siguiente función de dividir en jquery
var kg_id = $(this).attr("id");
var getvalues =kg_id.split("_");
var id = getvalues[1];
samuel felipe
Prueba esto
var data="allow~5";
var result=data.split('~');
RESULTADO
alert(result[0]);
la
split('|')
creará 3 cadenas dentro de una matriz basada en índice ceroresults
en el que la URL que desea es la tercera, por lo que desea haceralert(result[2])
– MilkyWayJoe
24 de diciembre de 2012 a las 19:35
La mayoría de las respuestas mencionan
$(row).val().split('|')
…Pero el hecho es que funciones como$(row).val()
o$(row).text()
son aplicables solo para elementos DOM. Esta es una variable que, como indicó, proviene de una respuesta AJAX. No hay absolutamente ninguna necesidad de usar jQuery para esto, ya que es solo una manipulación de cadenas ya disponible a través de JavaScript estándar. Solo hazrow.split('|')[2]
como lo indica TJ– MilkyWayJoe
24 de diciembre de 2012 a las 19:58
el problema no es el
split
método. El error de sytax se debe al hecho de que OP no puso comillas alrededor de la cadena. Me pregunto por qué nadie lo mencionó.– Cristian Traina
15 de julio de 2019 a las 7:28