【发布时间】:2016-12-13 20:14:21
【问题描述】:
我有以下 span 元素:
<div class="text" contenteditable="true" id="example">
<div class="outside">Type here <span class="inside"> please</span>.</div>
<div class="outside">Name here <span class="inside"> first </span>name</div>
</div>
使用下面的js函数,我可以得到</span>和</div>之间的长度:
$('span.inside').each(function() {
var sphs = $(this).get(0).nextSibling;
var len = sphs.length;
//If the length is less than 2
if(len < 2){
// i want to replace it with another words like "thanks."
}
})
如果长度小于 8,那么我想在 </span> 和 </div> 之间用另一个单词或字符串替换它(例如,thanks.)(参见单词“谢谢”放置)。
<div class="text" contenteditable="true" id="example">
<div class="outside">Type here <span class="inside"> please</span>thanks.</div>
</div>
如何用另一个字符串替换它?
编辑:
请注意,我使用的是.each,因为可能有多个具有相同类名的 span 元素。在第一行中,只有一个句点(</span>.</div>),因此它满足条件并将替换为另一个单词(在本例中为“thanks”)。
第二行(</span>name</div>)的长度大于2,因此不会被替换。
我希望这可以澄清它。
<div class="text" contenteditable="true" id="example">
<div class="outside">Type here <span class="inside"> please</span>.</div>
<div class="outside">Name here <span class="inside"> first </span>name</div>
</div>
……会变成……
<div class="text" contenteditable="true" id="example">
<div class="outside">Type here <span class="inside"> please</span> thanks.</div>
<div class="outside">Name here <span class="inside"> first </span>name</div>
</div>
【问题讨论】:
-
$('span.inside').length;是 jQuery 对象的长度(所以这里总是 1),而不是内容的长度! -
@cFreed 我知道这一点。哈哈。请看下面
var len = sphs.length;。 -
哦,好的。不够重视。
-
=) 不用担心。我想这个问题的第一部分是不必要的。我要编辑它。
标签: javascript jquery nextsibling