[英]How to extract a part of a value inside an attribute
我有许多带有onclick函数的超链接,它们通过这种方式具有不同的值:
<a onclick="Utils.decideOffer('', {'unlockFeature': 'cars'});">cars text</a>
<a onclick="Utils.decideOffer('', {'unlockFeature': 'bikes'});">bikes whatever</a>
<a onclick="Utils.decideOffer('', {'unlockFeature': 'motorcycles'});">another motor</a>
现在,当单击此元素时,我需要获取该数组的值,例如:“cars”,或“bikes”或“motorcycles”。
不建议从Utils.decideOffer函数中获取它们,因为我需要在不编辑该文件/函数的情况下获取它们。 这就是我打算提取它的方式。
$('a').click(function() {
onclickValue = $(this).attr('onclick');
if (onclickValue.length) {
var optionSelectedValue = ??? ;
}
});
我正在考虑使用正则表达式,所以你能帮我在正则表达式上使用这个案例吗?或者如果你有另一个好主意来实现它,也欢迎!
尝试split()
如:
$('a').click(function() {
onclickValue = $(this).attr('onclick');
if (onclickValue.length) {
var optionSelectedValue = onclickValue.split(":")[1].split("}")[0];
}
});
它会返回'cars'
或'bikes'
或'motorcycles'
包括报价
请参阅JSFIDDLE
...或者根据建议获得没有引号的值:
optionSelectedValue = onclickValue.split(":")[1].split("}")[0].split("'")[1];
请参阅更新的JSFIDDLE
$('a').click(function() {
onclickValue = $(this).attr('onclick');
if (onclickValue.length) {
var re = /(?!: ')+(\w)+(?='})/;
var found = onclickValue.match(re);
var optionSelectedValue = found[0] ;
alert(optionSelectedValue);
}
});
演示: http : //jsfiddle.net/wpjh1ma7/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.