jQuery 在第二次抠像后停止工作
jQuery stops working after second keyup
我的代码在第一次键上工作正常,但是一旦按下另一个键就会中断,然后在再按几个键后随机工作正常,我不知道为什么......我的代码看起来应该可以正常工作,但它没有...
jQuery("#myid").keyup(function() {
jQuery(".myclasss-suggestion").each(function(){
if(jQuery(this).html().substr(0, 2) == "GG"){
jQuery(this).removeClass("ss");
jQuery(this).html(jQuery(this).html().substring(2, jQuery(this).html().length));
}else{
jQuery(this).removeClass("gg");
jQuery(this).html(jQuery(this).html().substring(2, jQuery(this).html().length));
}
});
});
(它应该从每个.myclass-suggestion
的开头删除 GG 和 SS,并从项目中删除 gg 或 ss 类,它在按下第一个键时执行此操作,然后停止工作)
它正在使用的 HTML:
<input id="myid" >
<div class="myclasss-suggestions">
<div class="myclasss-suggestion ss gg" data-index="0">GGContent</div>
<div class="myclasss-suggestion ss gg" data-index="1">GGContent</div>
<div class="myclasss-suggestion ss gg" data-index="2">GGContent</div>
<div class="myclasss-suggestion ss gg" data-index="3">SSContent</div>
<div class="myclasss-suggestion ss gg" data-index="4">SSContent</div>
<div class="myclasss-suggestion ss gg" data-index="5">SSContent</div>
<div class="myclasss-suggestion ss gg" data-index="6">SSContent</div>
<div class="myclasss-suggestion ss gg" data-index="7">SSContent</div>
<div class="myclasss-suggestion ss gg" data-index="8">SSContent</div>
<div class="myclasss-suggestion ss gg" data-index="9">SSContent</div>
</div>
我想你应该使用.text()
而不是.html()
。事实上,.text()
return
是一个string
,.html()
return
selector
里面的html
。因此,当你执行"第二次"keyup
时,你的标记都搞砸了,因为你用一个操作不当的string
替换它(这是你第一次得到的html
标记)。
截至jquery DOC
.html()
Get the HTML contents of the first element in the set of matched elements.
.text()
Get the combined text contents of each element in the set of matched elements
including their descendants.
http://api.jquery.com/html/
http://api.jquery.com/text/
尝试使用 :
jQuery("#myid").keyup(function() {
jQuery(".myclasss-suggestion").each(function(){
if(jQuery(this).text().substr(0, 2) == "GG"){
jQuery(this).removeClass("ss")
.text(jQuery(this).text().substring(2, jQuery(this).text().length));
}
if(jQuery(this).text().substr(0, 2) == "SS") {
jQuery(this).removeClass("gg")
.text(jQuery(this).html().substring(2, jQuery(this).text().length));
}
});
});
小提琴:http://jsfiddle.net/VhtAU/
相关文章:
- Javascript Select OnChange没有'不要第二次工作
- twitter引导崩溃在第一次点击后停止工作
- 提交按钮只能在onchange调用输入文本后第二次点击时工作
- JavaScript onclick在IE 9中工作两次,然后停止
- Jquery - ZeroClipboard只能在第二次点击中工作
- $.getScript 第二次工作
- jQuery on(change);不要第二次工作
- jQuery.on('点击',function()只在第二次点击时工作
- 单击事件在触发一次主干js后停止工作
- CasperJS评估函数第二次不工作
- 添加第二个参数时,Javascript函数将停止工作
- delay()不会'第二次工作jquery
- Jquery网格在第二次加载时不工作
- 它在第二次点击时完成工作,为什么
- ng-click在第一次点击后停止工作,但仅在以后的Angular版本中
- 日期选择器 getDate 方法在第二次单击时工作并显示上一个选定的日期
- 图库在第二次使用后停止工作
- jQuery 在第二次抠像后停止工作
- HTML模态弹出动画不工作第二次
- 禁用锚标记首先点击设备,需要工作第二次点击