需要从属性中提取某些值并将它们放在变量中

时间:2010-06-10 14:54:50

标签: javascript jquery

在页面上的以下标记中,我想提取以下内容并将它们放在单独的变量中。

1-在onclick属性中获取“ProductID”之后的值并将其放入自己的变量中。 “产品ID” 所以在这种情况下它将是318

2-在onclick属性中获取“Orig_price”之后的值并将其放入变量“Orig_Price”中,因此在这种情况下它将是22.95

3-在onclick属性中获取“width”之后的值并将其放入变量“width”中所以在这种情况下它将是330

4-在onclick属性中获取“height”之后的值并将其放入变量“height”中所以在这种情况下它将是300

<a href="javascript:void(0);" onclick="window.open('/BulkDiscounts.asp?ProductID=318&ProductCode=' + escape('LB30X40ES') + '&Orig_Price=22.95', 'Discounts', 'scrollbars,status,resizable,width=330,height=300');"><img src="/v/vspfiles/templates/100/images/buttons/btn_quantitydiscounts.gif" border="0" align="absmiddle"></a>

3 个答案:

答案 0 :(得分:1)

试试这段代码:

var string = $('a').attr('onclick') + ""; // to be sure var string is string
ProductID = string.match(/ProductID=(\d*)/i)[1];
Orig_Price = string.match(/Orig_price=([\d\.]*)/i)[1];
width = string.match(/width=(\d*)/i)[1];
height = string.match(/height=(\d*)/i)[1];

答案 1 :(得分:1)

请忘记我之前的回答,这是错误的(测试它,我为错误的元素分配了id)。您可以使用onclick获取getAttribute属性的值。出于测试目的,我将您的示例更改为

<a href="javascript:void(0);" id="test" onclick="window.open('/BulkDiscounts.asp?ProductID=318&ProductCode=' + escape('LB30X40ES') + '&Orig_Price=22.95', 'Discounts', 'scrollbars,status,resizable,width=330,height=300');"><img src="/v/vspfiles/templates/100/images/buttons/btn_quantitydiscounts.gif" border="0" align="absmiddle"></a>

现在document.getElementById("test").getAttribute("onclick")返回

window.open('/BulkDiscounts.asp?ProductID=318&ProductCode=' + escape('LB30X40ES') + '&Orig_Price=22.95', 'Discounts', 'scrollbars,status,resizable,width=330,height=300');

现在您可以使用

获取值
var theString = document.getElementById("test").getAttribute("onclick");
var ProductID = theString.match(/ProductID=(\d*)/i)[1];
var Orig_Price = theString.match(/Orig_price=([\d\.]*)/i)[1];
var width = theString.match(/width=(\d*)/i)[1];
var height = theString.match(/height=(\d*)/i)[1];

(代码是从Tambourine的答案中偷来的,所以请给他积分;)。

答案 2 :(得分:1)

更新的演示:

DEMO: http://jsbin.com/axuce3/3 消息来源: http://jsbin.com/axuce3/3/edit

var pieces = $('a').attr('onclick').toString().split('?')[1].split('=');
var parts = [];
for (var i = 0; i < pieces.length; i++) {
    var value = parseFloat(pieces[i]);
    if (!isNaN(value)) parts.push(value);
}
alert( 'ProductID=' + parts[0] + 'Orig_price=' + parts[1] + 'width=' + parts[2] + 'height=' + parts[3]);