替换不处理数据属性值

时间:2015-02-23 14:57:08

标签: javascript jquery

我想从元素的data属性中获取的值中删除连字符,然后使用所述值作为元素的内容。这是我尝试过的:

HTML

<div id="output" data-value="-17"></div>

使用Javascript / JQuery的

$('#output').text(($('#output').data('value')).replace('-','');

我也尝试过:

$('#output').text($('#output').data('value').replace('-','');

jsfiddle

我做错了什么

5 个答案:

答案 0 :(得分:3)

您的代码中缺少),导致语法错误。但是,为简单起见,您可以使用函数重载。

$('#output').text(function(_,txt) {
   return $(this).attr('data-value').replace('-','');
});

另外,你还没有将jQuery包含在小提琴中。此外,您最好使用attr,其返回Stringdata返回Number,您必须转换为String -17Number

DEMO

答案 1 :(得分:1)

你的括号看起来有些混乱,试试这个

$('#output').text($('#output').data('value').replace('-',''));

答案 2 :(得分:1)

你需要一个字符串

 $('#output').text(new String($('#output').data('value')).replace('-',''));

<强> Demo

答案 3 :(得分:1)

$('#output').text(Math.abs($('#output').data('value')));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="output" data-value="-17"></div>

答案 4 :(得分:0)

你应该这样做

$(document).ready(function () {
    $("#output").text($('#output').attr('data-value').replace(/-/g, ""));
});

工作Fiddle