我有一个带有一些字符的DIV
。如何在每次单击DIV
时从文本中删除最后一个字符?
发布于 2010-01-02 09:25:48
删除第一个字符
$("div").on("click", function(){
$(this).text(function(index, text){
return text.replace(/^.(\s+)?/, '');
});
});
删除最后一个字符
$("div").on("click", function(){
$(this).text(function(index, text){
return text.replace(/(\s+)?.$/, '');
});
});
删除特定字符
$("div").on("click", function(){
$(this).text(function(index, text){
return text.replace(/r/gi, '');
});
});
请在线查看每种方法的示例:http://jsfiddle.net/Xcn6s/
发布于 2010-01-02 20:25:47
假设您有一个对div的引用,并且它只包含一个文本节点(正如您的问题所暗示的),这非常简单。下面是一个非jQuery的解决方案:
div.onclick = function() {
var textNode = this.firstChild;
textNode.data = textNode.data.slice(0, -1);
};
发布于 2010-01-02 09:30:12
除了Jonathan的答案,如何删除第一个字符:
$("div.myDiv").click(function(){
$(this).html($(this).text().substring(1));
});
或者,删除最后一个字符:
$("div.myDiv").click(function(){
$(this).html($(this).text().replace(/.$/g, ''));
});
或者,疯狂地从随机位置删除一个字符:
$("div.myDiv").click(function(){
var text = $(this).text();
var index = Math.round(Math.random() * (text.length - 1));
var result = text.substring(0, index) + text.substring(index + 1, text.length - 1);
$(this).html(result);
});
您可以使用上面的函数和预定义的索引从特定位置删除,而不是随机放置。
https://stackoverflow.com/questions/1990265
复制相似问题