2012-10-17 32 views
6

Tôi có thẻ này trong ví dụ:Parse onclick = "setLocation (...)" với jQuery/prototype

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

Những gì tôi cần làm là đưa ra yêu cầu ajax trên nút bấm. Tôi cần phân đoạn URL "sản phẩm/17" từ trên được gắn vào url ajax của tôi. Bất kỳ cách thông minh để trích xuất này mà không sử dụng regex? HTML không thể thay đổi - tuy nhiên Tôi có thể sửa đổi URL và trong trường hợp đó, tôi cần phải trích xuất URL chính xác từ thuộc tính onclick.

Vì vậy, tôi cần URL hoặc "sản phẩm/17" được trích xuất từ ​​thuộc tính onclick, hy vọng không sử dụng regex.

Cảm ơn

Trả lời

6

Vì vậy, nếu không sử dụng RegExp, và không có tiêu chí để phân tích chuỗi, đây là giải pháp đơn giản nhất:

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

+1 để tính toán chỉ mục sắc nét. – Adil

+0

về cơ bản là nó, và nó cũng cho phép phân tích các tham số bổ sung. cảm ơn – srgb

+1

lastIndexOf không hoạt động trong IE8, được thông báo – srgb

4

Bạn có thể thử với split() chức năng:

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

Tuy nhiên, điều đó không trả lời được câu hỏi. – VisioN

+0

tại sao? http://jsfiddle.net/Zw3ud/ – mdaguerre

+0

Vì OP muốn phân tích toàn bộ giá trị thuộc tính 'onclick', không chỉ URL. – VisioN