Удалите последний символ строки с JavaScript

У меня есть a DIV с некоторыми символами. Как я могу удалить последний знак из текста с каждым, нажимают DIV самостоятельно?

18
задан Sampson 2 January 2010 в 01:58
поделиться

9 ответов

Удаление первого символа

​$("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/

26
ответ дан 30 November 2019 в 06:11
поделиться

Если предположить, что у вас есть ссылка на div и он содержит только один текстовый узел (как предполагает ваш вопрос), то это очень просто. Вот решение не jQuery:

div.onclick = function() {
    var textNode = this.firstChild;
    textNode.data = textNode.data.slice(0, -1);
};
23
ответ дан 30 November 2019 в 06:11
поделиться

Альтернатива ответу Джонатана, как удалить первый символ:

$("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);
});

Вместо случайного места можно использовать приведенную выше функцию с предопределенным индексом для удаления из определенного места:

.
2
ответ дан 30 November 2019 в 06:11
поделиться

Это удаляет символ каждый раз, когда вы нажимаете на div. Без дополнительных требований, я не могу дать вам больше.

<html>

<head>
    <script>

    function deleteChar(div) {
       div.innerHTML = div.innerHTML.replace(/.$/, '');
    }

    </script>
</head>

<body>

    <div onclick="deleteChar(this)">this is my div</div>

</body>
</html>

Ой, простите, вы просили спросить... Ну, вот как вы это делаете на прямом javascript.

2
ответ дан 30 November 2019 в 06:11
поделиться

Если вы хотите удалить первый символ текста, каждый клик можно использовать подстроку, например:

$("#textDiv").click(function(){
  $(this).html($(this).text().substring(1));
});
0
ответ дан 30 November 2019 в 06:11
поделиться

Для подстроки ответа Джонатона используйте...

$("div.myDiv").click(function(){
  $(this).html( $(this).text().replace("/.$/gi", "o") );
});

Для удаления последнего символа

.
0
ответ дан 30 November 2019 в 06:11
поделиться

Это просто с помощью селектора CSS3 атрибута$=, что означает "заканчивается" в выборе jQuery:

Удалить 1-й символ:

$("div[id$=/]").each(function(){ 
    this.id = this.id.substr(1);
});

Удалить последний символ:

$("div[id$=/]").each(function(){ 
    this.id = this.id.substr(0,this.id.length - 1);
});
-1
ответ дан 30 November 2019 в 06:11
поделиться

Правка: вот самый простой способ сделать это без библиотечных зависимостей

function removeLastChar(node) {
    var i = node.childNodes.length;
    while (--i >= 0) {
        if (3 === node.childNodes[i].nodeType) {
            node.childNodes[i].data = node.childNodes[i].data.replace(/\S\s*$/, '');
            break;
        }
    }
}

/\S\s*$/ still означает "последнее непространство в конце"

Примечание: заимствовано из решения Тима Дауна и дальнейшего многолетнего опыта веб-разработки, :)

3
ответ дан 30 November 2019 в 06:11
поделиться

Простой JavaScript:

<div id="text">This is some text</div>
<script>
var node = text.firstChild;
var nodeValue = "";
var nodeValueLength = 0;
text.onclick = function () {
    nodeValue = node.nodeValue;
    node.nodeValue = nodeValue.substring(0, nodeValue.length - 1);
};
</script>
0
ответ дан 30 November 2019 в 06:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: