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