Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换不处理数据属性值_Javascript_Jquery - Fatal编程技术网

Javascript 替换不处理数据属性值

Javascript 替换不处理数据属性值,javascript,jquery,Javascript,Jquery,我想从元素的data属性中获得的值中删除连字符,然后将该值用作元素的内容。以下是我尝试过的: HTML <div id="output" data-value="-17"></div> 我也尝试过: $('#output').text($('#output').data('value').replace('-',''); 我做错了什么您的代码中缺少一个),这导致了语法错误。但是,为了简单起见,您可以使用函数重载 $('#output').text(function(

我想从元素的data属性中获得的值中删除连字符,然后将该值用作元素的内容。以下是我尝试过的:

HTML

<div id="output" data-value="-17"></div>
我也尝试过:

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

我做错了什么

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

$('#output').text(function(_,txt) {
   return $(this).attr('data-value').replace('-','');
});
另外,您还没有将jQuery包含在小提琴中。另外,您最好使用
attr
,它返回一个
字符串
,而
数据
返回一个
数字
,您必须将其转换为
字符串
,因为
-17
是一个
数字

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

$('#output').text(function(_,txt) {
   return $(this).attr('data-value').replace('-','');
});
另外,您还没有将jQuery包含在小提琴中。另外,您最好使用
attr
,它返回一个
字符串
,而
数据
返回一个
数字
,您必须将其转换为
字符串
,因为
-17
是一个
数字

你应该这样做

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

你应该这样做

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

正在工作

您的括号看起来有点混乱,试试这个

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

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

$('#output').text($('#output').data('value').replace('-',''));
你需要一根绳子

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

您需要一个字符串

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

$('#output').text(Math.abs($('#output').data('value'))

$('#output').text(Math.abs($('#output').data('value'))


您似乎没有将新值赋回值我只想直接将其作为元素文本注入,而不首先赋给它
$(“#输出”)。数据('value')
返回一个
数字,而不是字符串!(为了简单起见,在这种假设的情况下,这意味着需要额外的代码行)看起来您并没有将新值赋回值,我只是想直接将其作为元素文本注入,而不首先赋给它
$('#output')。data('value')
返回一个
数字,而不是字符串!(为了简单起见,这意味着在这种假设情况下需要额外的代码行)@isherwood是的。我在操作文本,文本是空的。已更正。请解释下划线作为第一个参数的意义好吗?@Marc第一个参数是一个索引,不需要。因此,将其命名为
\uu
是一种实践,表明它之所以被使用,只是因为它必须在那里(你知道,因为参数的顺序很重要),而不是因为代码中需要它。这只是我的喜好,谢谢。在阅读了您修改后的答案后,我用
.attr('data-value')
替换了
.data('value')
,使其按预期工作。@Marc很高兴能提供帮助。希望你也理解了我为什么使用isherwood是的。我在操作文本,文本是空的。已更正。请解释下划线作为第一个参数的意义好吗?@Marc第一个参数是一个索引,不需要。因此,将其命名为
\uu
是一种实践,表明它之所以被使用,只是因为它必须在那里(你知道,因为参数的顺序很重要),而不是因为代码中需要它。这只是我的喜好,谢谢。在阅读了您修改后的答案后,我用
.attr('data-value')
替换了
.data('value')
,使其按预期工作。@Marc很高兴能提供帮助。希望您也理解了为什么我使用了“更好地只做
+”
更好地只做
+”