[英]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.