搜索下一个按钮 javascript

Search next button javascript

本文关键字:javascript 按钮 下一个 搜索      更新时间:2023-09-26

有什么可能的方法可以使用javascript创建下一个搜索和一个搜索所有按钮?这是我到目前为止的脚本...

<script type="text/javascript"> 
    function setSelectionRange(input, selectionStart, selectionEnd)
    {
        input.focus();
        input.setSelectionRange(selectionStart, selectionEnd);
    }
    function selectString (input, string)
    {
        var match = new RegExp(string, "g").exec(input.value);
        if (match)
    {
    setSelectionRange (input, match.index, match.index + match[0].length);
    }
    }
</script>

<form action="" method="get" onsubmit="selectString(document.getElementById('text'), document.getElementById('search').value);return false;">               
        <legend>
            <font face="verdana">Zoekveld</font face>
        </legend>
        <input id="search" name="search" type="text" size="75">
        <input type="submit" value="Zoeken">
</form>
<form name=form1 method="get">
        <legend>
            <font face="Verdana">Vind:</font face>
        </legend>
        <textarea id="text" cols="54" rows="20"></textarea>
</form>

这个脚本的问题在于它只能找到第一个匹配项......

将 RegExp 存储在一个变量中,而不是在每次函数执行时创建一个新变量,它的计数器属性lastIndex exec() 将保持不变。

var r = /^$/;
function setSelector(string) {
    r = new RegExp(string, "i");
}
function selectNextMatch(input) {
    var match = r.exec(input.value);
    if (match)
        setSelectionRange(...);
    else
        alert("Nothing found");
}
<input type="text" size="75" onchange="setSelector(this.value);">
<input type="button" value="Zoeken" onclick="selectNextMatch(document.getElementById('text'));">
<textarea id="text" cols="54" rows="20"></textarea>