[英]Jquery data-target as string possible?
我有一個數據屬性,末尾有一個唯一的名稱和一個數字。
data-target="foo-bar-n"
其中n是唯一數字。
我希望能夠獲得該號碼,但無法使用。
我打電話:
.data("target")
在我想要目標的對象上,它返回正常,但是當我對結果使用正則表達式搜索時,我得到一個完全不同的數字,我懷疑這是因為返回的數據是帶有其他數據的對象。 我需要知道的是如何獲取該數字,或者如何將數據屬性轉換為字符串。 (我嘗試過toString,但這是行不通的。)
這是我的代碼:
var selection= window.getSelection().getRangeAt(0);
var showSelection = $(selection.commonAncestorContainer.parentNode.parentNode)
.data('target');
console.log(showSelection);
console.log(showSelection.search(/\d+/));
控制台日志
#comment_for_paragraph_17
23
該程序旨在讓用戶選擇頁面上的某些內容並將其突出顯示。
如果您使用的是jQuery 1.4.3或更高版本,則可以使用
.data("target");
否則,您必須使用
.attr("data-target");
但是您的要求似乎是從格式化的字符串參數中提取數字?
HTML:
<div id="foo" data-target="foo-bar-5"></div>
jQuery的:
var num = $('#foo').data('target').split('-')[2];
或正則表達式:
var num = $('#foo').data('target').match(/\d+/);
或者,如果您的要求是專門捕獲字符串中的最后一個數字(例如:foo-bar-55-23將導致“ 23”)
var num = $('#foo').data('target').split('-').slice(-1);
// regex
var num = $('#foo').data('target').match(/\d+$/);
見小提琴
嘗試:
.data('target').split('-').slice(-1)[0];
.split會將您的字符串分割成一個數組,每個數組元素都是一個單詞
.slice(-1)將返回一個包含數組最后一個元素的數組
[0]訪問數組元素
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.