我有一个contentEditable,我on('paste')通过捕捉事件剥离粘贴内容的格式.然后我关注textarea,将内容粘贴到那里,然后复制值.几乎是这里的答案.问题是我不能这样做:
$("#paste-output").text($("#area").val());
Run Code Online (Sandbox Code Playgroud)
因为这会用粘贴的文本替换我的整个内容.所以我需要将内容粘贴到插入位置.我整理了一个脚本来做到这一点:
pasteHtmlAtCaret($("#area").val());
// pastes CTRL+V content at caret position
function pasteHtmlAtCaret(html) {
var sel, range;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
var el = document.createElement("div");
el.innerHTML = html;
var frag = document.createDocumentFragment(), node, lastNode;
while ((node = el.firstChild)) {
lastNode = frag.appendChild(node);
}
range.insertNode(frag);
if (lastNode) {
range = range.cloneRange();
range.setStartAfter(lastNode);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
}
} else if (document.selection && document.selection.type != …Run Code Online (Sandbox Code Playgroud) 我有一个类,如果它存在,我想将该变量用作true/false if语句.
HTML
<div id="snake" class="snake--mobile">
Run Code Online (Sandbox Code Playgroud)
JS
var isMobileVersion = document.getElementsByClassName('snake--mobile');
if (isMobileVersion !== null)
alert('xx');
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.有任何想法吗?请不要jQuery回答.
我有以下问题.有一次,我添加blockquote的contenteditable,按ENTER键移动到新行,并增加了一个blockquote元素.它永远持续下去,我无法摆脱格式化.所需的功能将是无序列表的功能.当您按Enter键时,它会添加一个新的空<li>元素,但是如果再次按Enter键,它将转义格式,删除先前创建的<li>并添加一个<p>.
看看演示:http://jsfiddle.net/wa9pM/
一个黑客,我发现是创建一个空<p>下blockquote,在创建之前blockquote.但有没有办法打破JavaScript的格式化行为?我不知道如何检查:如果光标在哪里,它是行的结尾,如果它是一个块引用,按Enter键,请不要添加新的blockquote.
我正在使用此代码生成一个blockquoteJS:
document.execCommand('formatBlock', false, 'blockquote');
Run Code Online (Sandbox Code Playgroud) 我想在<section>"空" 时显示一条消息.在里面<section>,我可以有一个未知的数字,<ul>里面有一个未知的数字<li>.当我点击"x"按钮时,它会删除它<li>.这是HTML:
<section>
<ul>
<li class="row row--half-padding-top-bottom">
<span>October 2013</span>
</li>
<li class="notification notification--new">
<span>
<span>Franck Ribery</span>
<span>Bayern Munich</span>
</span>
<span class="accept-ignore-container">
<button class="js-animate-onclick--parent" title="Accept">Accept</button>
<button class="js-connect-invite--ignore">×</button>
</span>
</li>
<li class="notification notification--new">
<span>
<span>Arjen Robben</span>
<span>Bayern Munich</span>
</span>
<span class="accept-ignore-container">
<button class="js-animate-onclick--parent" title="Accept">Accept</button>
<button class="js-connect-invite--ignore">×</button>
</span>
</li>
</ul>
<ul>
<li class="row row--half-padding-top-bottom">
<span>September 2013</span>
</li>
<li class="notification notification--new">
<span>
<span>Franck Ribery</span>
<span>Bayern Munich</span>
</span>
<span class="accept-ignore-container">
<button class="js-animate-onclick--parent" title="Accept">Accept</button>
<button class="js-connect-invite--ignore">×</button> …Run Code Online (Sandbox Code Playgroud) 你知道为什么line-through文本装饰:before没有被覆盖吗?
HTML
<p>Should be strike-through</p>
Run Code Online (Sandbox Code Playgroud)
CSS
p {
text-decoration: line-through;
}
p:before {
content: "Should not be strike-through. ";
text-decoration: none !important;
}
Run Code Online (Sandbox Code Playgroud)
任何想法如何只line-through添加一部分文本而不添加额外的元素,如<span>?
我想隐藏用户点击的元素(但保留上面的内容).看看这个演示:http://jsfiddle.net/dS2vA/
所以如果你点击第二个<li>,<li>它下面的三个应该被隐藏.如果单击第4个<li>,则只应隐藏第5个元素.
我尝试过这样做,:not('clicked')但也针对点击元素上方的元素.
有任何想法吗?
我正在使用https://github.com/jney/grunt-htmlcompressor来压缩HTML文件.但它需要我手动输入我想要缩小的所有HTML文件:
grunt.initConfig({
htmlcompressor: {
compile: {
files: {
'dest/index.html': 'src/index.html'
},
options: {
type: 'html',
preserveServerScript: true
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
有没有办法指定我想缩小整个文件夹(和子文件夹)的所有HTML文件?
或者,如果这个html压缩器是有限的,你知道一个不同的npm包来做这个HTML mification吗?
我想用JavaScript替换部分URL,但是愚蠢的正则表达式给我带来了麻烦.我想从这里切换:
http://website.com/test.html/post/something-else/
Run Code Online (Sandbox Code Playgroud)
对此:
http://website.com/post/something-else/
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢!
我有以下JSON(截断):
{
"** Please contact a mod by posting on the forums **": {
"tvdb_id": "257937",
"last_updated": 1341780286,
"images": {
"poster": "http://zapp.trakt.us/images/posters/17288.jpg",
"fanart": "http://zapp.trakt.us/images/fanart/17288.jpg"
}
},
"Jamies Best Ever Christmas": {
"tvdb_id": "214161",
"last_updated": 1329701153,
"images": {
"poster": "http://zapp.trakt.us/images/posters/9126.jpg",
"fanart": "http://zapp.trakt.us/images/fanart/9126.jpg"
}
},
"Kuromajo-san ga Tooru!!": {
"tvdb_id": "257914",
"last_updated": 1395775431,
"images": {
"poster": "http://zapp.trakt.us/images/posters/15640.jpg",
"fanart": "http://zapp.trakt.us/images/fanart/15640.jpg"
}
},
"Arbesre Shavuout": {
"tvdb_id": "253960",
"last_updated": 1328789472,
"images": {
"poster": "http://zapp.trakt.us/images/posters/14058.jpg",
"fanart": "http://zapp.trakt.us/images/fanart/14058.jpg"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想搜索一个值(从var现在开始)并找到要返回的键tvdb_id. …
我有一些JavaScript代码可以将愚蠢的引号转换为智能引号contenteditable.
当您在它们仅关闭的行的开头添加哑引号时,会出现此问题.例如,你得到这个:
”dumb quotes” instead of “dumb quotes”
Run Code Online (Sandbox Code Playgroud)
试试演示:http://jsfiddle.net/7rcF2/
我正在使用的代码:
function replace(a) {
a = a.replace(/(^|[-\u2014\s(\["])'/g, "$1\u2018"); // opening singles
a = a.replace(/'/g, "\u2019"); // closing singles & apostrophes
a = a.replace(/(^|[-\u2014/\[(\u2018\s])"/g, "$1\u201c"); // opening doubles
a = a.replace(/"/g, "\u201d"); // closing doubles
a = a.replace(/--/g, "\u2014"); // em-dashes
return a };
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢!
PS我很喜欢正则表达式......
我正在将变量与需要在子元素中找到的文本进行比较:
var selectedTVshow = 'something';
$('.tvshow').on('click', function() {
checkIfDuplicate(selectedTVshow);
})
function checkIfDuplicate(show) {
$('.container__list-of-shows li').each(function() {
var tvShowTitle = $(this).find('.container__list-of-shows__info__title').text;
console.log(tvShowTitle);
if (tvShowTitle === show)
$('body').append('<p>true</p>');
// return false
})
}
Run Code Online (Sandbox Code Playgroud)
见演示:http://jsfiddle.net/4Kh5S/1/
但是,它不会返回该对象的文本.我究竟做错了什么?