当我为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>
答案 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();
因此除了文本和链接之外,链接之间没有间隙。由于链接应该彼此相邻(参见下面的假设),因此只有第一个链接应该有间隙
假设:我假设在链接后不应该有任何文字。