簡體   English   中英

如何在屬性中提取值的一部分

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM