我有这样的字符串'set , many, like, see, what'
当我创建此字符串时,我还使用链接元素
创建div
<div>
<a href="#">set</a>
<a href="#">many</a>
<a href="#">like</a>
...
</div>
并创建带有'set , many, like, see, what'
值的隐藏输入...当我们点击链接元素时,我们有链接字符串(例如:set
)
如何删除字符串的第一个匹配并将其从隐藏输入中删除?
ps:我说第一场比赛,因为一个元素可以重复
答案 0 :(得分:1)
var anchors = document.getElementById('container').getElementsByTagName('a'),
hiddenInput = document.getElementById('hidden');
for (var i = 0, anchorsLength = anchors.length; i < anchorsLength; i++) {
var anchor = anchors[i];
anchor.onclick = function() {
var term = anchor.innerHTML;
hiddenInput.value = hiddenInput
.value
.replace(new RegExp(term + ',\s?'), '');
}
}
此代码允许您单击其中一个锚点,其中将删除第一次出现的锚点文本节点,以及,
和任何可选的空白字符。
答案 1 :(得分:1)
link
是对其中一个链接的引用,theString
是对字符串的引用,hidden
是对隐藏输入控件的引用,您可以执行类似的操作这样:
link.onclick = function(e)
{
var expr = new RegExp("\b" + this.innerHTML + "\b(, ?)?");
theString = theString.replace(expr, "");
hidden.value = theString;
}