删除textarea

时间:2017-01-07 05:32:33

标签: javascript jquery

当我为textarea创建新链接时,它会创建一个新行,如

[enter link description here][1] and [enter link description here][2]

   [1]: http://

   [2]: http://

正如您在上面看到的那样,底部的两个链接之间存在差距我不希望存在差距

它应该看起来像

[enter link description here][1] and [enter link description here][2]

   [1]: http://
   [2]: http://
  

在创建没有间隙的新链接时,请问如何制作它   对于底部链接。

codepen demo 已使用工作代码更新

<script type="text/javascript">
$('#myLink').on('shown.bs.modal', function() {
    var textarea = document.getElementById("message");
    var len = textarea.value.length;
    var start = textarea.selectionStart;
    var end = textarea.selectionEnd;
    var selectedText = textarea.value.substring(start, end);
    $('#title').val(selectedText);
    $('#url').val('http://');
});  

$('#save').on('click', function(e) {
    var textarea = document.getElementById("message");
    var len = textarea.value.length;
    var start = textarea.selectionStart;
    var end = textarea.selectionEnd;
    var selectedText = textarea.value.substring(start, end);
    var counter = findAvailableNumber(textarea);

    if ($.trim($('#title').val()).length == 0){
        var replace_word = '[enter link description here]' + '[' + counter + ']';
    } else {
        var replace_word = '[' + $(this).val() + ']' + '[' + counter + ']';
    }

    var add_link = '\n\n' + '   [' + counter + ']: ' + $('#url').val();

    textarea.value = textarea.value.substring(0, start) + replace_word + textarea.value.substring(end,len) + add_link;
}); 

function findAvailableNumber(textarea){
    var number = 1;

    var a = textarea.value;

    if(a.indexOf('[1]') > -1){

        //Find lines with links

        var matches = a.match(/(^|\n)\s*\[\d+\]:/g);

        //Find corresponding numbers

        var usedNumbers = matches.map(function(match){
            return parseInt(match.match(/\d+/)[0]); }
        );

        //Find first unused number

        var number = 1;

        while(true){

            if(usedNumbers.indexOf(number) === -1){

                //Found unused number

                return number;
            }

            number++;
        }
    }

    return number;
}
</script>

1 个答案:

答案 0 :(得分:1)

我认为你的代码在:

var add_link = '\n\n' + '   [' + counter + ']: ' + $('#url').val();

应该是

if (counter == 1)
    var add_link = '\n\n' + '   [' + counter + ']: ' + $('#url').val();
else
    var add_link = '\n' + '   [' + counter + ']: ' + $('#url').val();

因此除了文本和链接之外,链接之间没有间隙。由于链接应该彼此相邻(参见下面的假设),因此只有第一个链接应该有间隙

假设:我假设在链接后不应该有任何文字