2012-10-17 11 views
6

Ho questo tag nell'esempio:Parse onclick = "setLocation (...)" con jQuery/prototipo

<button onclick="setLocation('http://mysite.com/checkout/cart/add/product/17/')" />

Che cosa devo fare è avviare richiesta AJAX sul pulsante di scatto. Ho bisogno del segmento di URL "prodotto/17" di cui sopra aggiunto al mio URL ajax. Qualche modo intelligente per estrarre questo senza usare regex? L'HTML non è modificabile - tuttavia Posso modificare l'URL e in tal caso avrei bisogno di estrarre l'URL esatto dall'attributo onclick.

Quindi ho bisogno dell'URL o "prodotto/17" estratto dall'attributo onclick, si spera che non si usi regex.

Grazie

risposta

6

Quindi, se non l'utilizzo RegExp, e nessun criterio per il parsing della stringa, ecco la soluzione più semplice:

var str = ​$("button").attr("onclick"​​​​); 
str = str.substring(str.lastIndexOf("add/") + 4, str.length - 3);​ 
+1

+1 per calcoli con indici acuti. – Adil

+0

fondamentalmente, e consente anche l'analisi di parametri aggiuntivi. grazie – srgb

+1

lastIndexOf non funziona in IE8, sii consigliato – srgb

4

si può provare con la scissione() Funzione:

var url = 'http://mysite.com/checkout/cart/add/product/17'; 
var array = url.split('add/'); 
alert(array[1]);​​​​​​​​​​​ 
+0

Questo però non risponde alla domanda. – VisioN

+0

perché? http://jsfiddle.net/Zw3ud/ – mdaguerre

+0

Perché l'OP vuole analizzare l'intero valore dell'attributo 'onclick', non solo l'URL. – VisioN