问题:当我第一次输入字符串“a”的时候,添加成功了,当我第二次还输入相同的字符串“a”的时候,居然没添加成功,求高手找找那个地方的bug,并给我指点出来错误的原因,多谢~~~
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<ul class="ct">
<li>这里是</li>
<li>我们</li>
<li>地方</li>
</ul>
<input class="ipt-add-content" placeholder="添加内容" />
<button id="btn-add-start">开头添加</button>
<button id="btn-add-end">结尾添加</button>
<script>
var oint = document.getElementsByClassName("ipt-add-content")[0];
var obtnst = document.getElementById("btn-add-start");
var obtnen = document.getElementById("btn-add-end");
var oul = document.getElementsByClassName("ct")[0];
var os = /[^\s]/g;
obtnst.onclick = function() {
if(os.test(oint.value)) {
var neol=oul.children[0];
var oli=document.createElement("li");
oli.innerText=oint.value;
oul.insertBefore(oli,neol);
oint.value="";
}
}
obtnen.onclick = function() {
if(os.test(oint.value)) {
var oli1 = document.createElement("li");
oli1.innerText = oint.value;
oul.appendChild(oli1);
oint.value = "";
}
}
</script>
</body>
</html>
问题在你的正则表达式上
var os = /[^s]/g;
,改成var os = /[^s]/;
。带g
的正则会记忆上次匹配的index
,造成下次匹配的时候匹配不上了就。