无法找到答案,我尝试了我在本网站和其他地方发现的内容,但它从未奏效。
目标:在字段DIV中给出一个单词之前和之后修剪空格。
问题:只要一个单词前面没有空格,一切正常!可以在DIV中存在文本,可以是可以插入文本的空DIV。
我尝试在DIV中的javascript中使用 trim(this),但这并不起作用。即使在脚本本身,我也尝试过 $。trim(editableObj.innerHTML),也没有 editableObj.innerHTML.trim()
什么都行不通!
JS
<script>
function showEdit(editableObj) {
$(editableObj).css("background", "#FFF");
}
function saveToDatabase(editableObj, column, linkmainid, nav, linkid) {
$(editableObj).css("background", "#FFF url(loaderIcon.gif) no-repeat right");
$.ajax({
url: 'save'+nav+'.php',
type: "POST",
data: 'linkcat=' + column + '&linktitle=' + editableObj.innerHTML + '&linkmainid=' + linkmainid + '&action=' + nav + '&linkid=' + linkid,
success: function(data) {
$(editableObj).css("background", "#FDFDFD");
window.location="/website/cms/menu.php";
}
});
}
HTML
<div class="navnew" contenteditable="true" onBlur="saveToDatabase(this,'1','999999','navnew','111')" onClick="showEdit(this);"></div>
答案 0 :(得分:1)
var stringWithLeadingSpaces = " hello world!"
var trimmedString = stringWithLeadingSpaces.trim();
console.log(trimmedString); //logs "hello world!"
答案 1 :(得分:0)
将此代码段添加到您的代码中:
String.prototype.trim = String.prototype.trim || function trim() {
return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); };
然后,使用:
var myValue = " one, two, three ".trim();
或
var myValue = " one, two, three ";
var myValueTrimmed = myValue.trim();
答案 2 :(得分:0)
在内容可编辑DIV中键入空格会插入非中断空格字符。如果您检索editableObj.innerHTML
的内容,则这些内容会显示为字符实体字符串&#34;&amp; nbsp;&#34;的序列。当然String.prototype.trim
不删除了&#34;&amp; nbsp;&#34;因为它们不是空白文本!
如果您将内容检索为editableObj.textContent
,则返回的文本包含字符代码为0xA0的实际非中断空格。 String.prototype.trim
会删除这些。
最终选择适合您需要的修剪方法,具体取决于您是要在数据库中保存HTML还是纯文本。