Javascript Jquery数据目标是否为字符串?

Javascript Jquery数据目标是否为字符串?,javascript,jquery,Javascript,Jquery,我有一个数据属性,它有一个唯一的名称,末尾有一个数字 data-target="foo-bar-n" 其中n是唯一的数字 我想得到那个号码,但它不起作用 我呼吁: .data("target") 在我想要目标的对象上,它返回的结果很好,但是当我对结果使用正则表达式搜索时,我得到了一个完全不同的数字,我怀疑这是因为返回的数据是包含其他数据的对象。我需要知道的是如何获取该数字,或者如何将数据属性转换为字符串。(我试着去串,但没用。) 这是我的密码: var selection= window.g

我有一个数据属性,它有一个唯一的名称,末尾有一个数字

data-target="foo-bar-n"
其中n是唯一的数字

我想得到那个号码,但它不起作用

我呼吁:

.data("target")
在我想要目标的对象上,它返回的结果很好,但是当我对结果使用正则表达式搜索时,我得到了一个完全不同的数字,我怀疑这是因为返回的数据是包含其他数据的对象。我需要知道的是如何获取该数字,或者如何将数据属性转换为字符串。(我试着去串,但没用。)

这是我的密码:

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:

或正则表达式:

var num = $('#foo').data('target').match(/\d+/);
或者,如果您的要求是特别捕获字符串中的最后一个数字(例如:foo-bar-55-23将导致“23”)


如果您使用的是jQuery 1.4.3或更高版本,请参见

.data("target");
否则,您必须使用

.attr("data-target");
但您的需求似乎是从格式化的字符串参数中提取数字

HTML:

或正则表达式:

var num = $('#foo').data('target').match(/\d+/);
或者,如果您的要求是特别捕获字符串中的最后一个数字(例如:foo-bar-55-23将导致“23”)

请参见尝试:

.data('target').split('-').slice(-1)[0];
.split将字符串拆分为一个数组,每个数组元素都是一个单词

.slice(-1)将返回由数组的最后一个元素组成的数组

[0]访问数组元素

请尝试:

.data('target').split('-').slice(-1)[0];
.split将字符串拆分为一个数组,每个数组元素都是一个单词

.slice(-1)将返回由数组的最后一个元素组成的数组

[0]访问数组元素

我怀疑是因为返回的数据是包含其他数据的对象

那完全没有道理。无法获取字符串中的数字的原因是返回匹配项的索引。使用或替代:

我怀疑是因为返回的数据是包含其他数据的对象

那完全没有道理。无法获取字符串中的数字的原因是返回匹配项的索引。使用或替代:


你能提供你的代码吗?此外,数据属性仍然只是属性。请尝试
.attr('data-target')
获取该属性的字符串值。。。这个正则表达式应该可以工作:
/([\d]+)$/
我已经提供了我的代码。当我尝试attr方法时,我得到了相同的结果。你能提供你的代码吗?此外,数据属性仍然只是属性。请尝试
.attr('data-target')
获取该属性的字符串值。。。这个正则表达式应该可以工作:
/([\d]+)$/
我已经提供了我的代码。当我尝试attr方法时,我得到了相同的结果。