javascript - 如何循环出现在元素之后的元素?

标签 javascript jquery

我想我可以在几分钟内发布对此问题的答案......

这是一个例子:

<script>
function ClearAndRunFuncs(element) {
//Clears answers to elements that are AFTER this element that HAVE an onchange
//Runs the unique onchange function to EACH element after clearing the answer
}
function FuncA(element) {
//does stuff
}
function FuncB(element) {
//does different stuff
}
function FuncC(elements) {
//does different stuff
}
function FuncD(element) {
//does different stuff
}
</script>


<select name=YesNo onchange="FuncA(this);ClearAndRunFuncs(this)">
    <option value="">Please Select</option>
    <option>Yes</option>
    <option>No</option>
</select><br>
<br>
<input name=RandomInputA>
<select name=SomeOtherSelect onchange="FuncB(this);ClearAndRunFuncs(this)">
    <option value="">Please Select</option>
    <option>Yes</option>
    <option>No</option>
</select><br>
<br>
<select name=AnotherSelect onchange="FuncC(this);ClearAndRunFuncs(this)">
    <option value="">Please Select</option>
    <option>Yes</option>
    <option>No</option>
</select><br>
<br>
<input name=RandomInputB onchange="FuncD(this)">
<select name=LastSelect onchange="FuncE(this);ClearAndRunFuncs(this)">
    <option value="">Please Select</option>
    <option>Yes</option>
    <option>No</option>
</select><br>

我想重置初始元素更改后出现的元素的答案并运行其相应的函数(ClearAndRunFuncs(this);)。

如果您想知道原因,这种类型的代码将帮助我向用户提供问题列表,如果他们碰巧不按顺序回答问题,则会迫使他们重新回答可能会出现问题的问题。向不同方向分支,无需重新回答某些不影响分支的字段。

如果你用 jquery 回答这个问题,我会很感激关于发生的事情的额外细节,因为我是 jquery 的新手。最好的答案最好是同时具有 javascript 和 jquery 解决方案,并详细解释 jquery。谢谢大家!

最佳答案

我最终使用了什么:

function ClearAndRunFuncs(element) {
var str = element.nextSibling;
var inputTypes = ["INPUT", "SELECT"];
   while(str.name != "Stop") {
      if(inputTypes.indexOf(str.tagName) > -1) {
         if(str.onchange != null) {
            str.value="";
            str.onchange();
         }
      }
   var str = str.nextSibling;
   }
}

在脚本的末尾我写了一个 <input name=Stop type=hidden>停止 while 循环。

关于javascript - 如何循环出现在元素之后的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37866070/

相关文章:

javascript - 防止在样式组件中将 Prop 从子级传递给父级

javascript - 使固定侧边栏从页面底部滚动 290px?

javascript - 为什么 ISN'T `foo: ' bar'` 是 Javascript 中的语法错误?

jquery - 用jQuery计算Children的总宽度

javascript - 重定向更新的请求不显示

javascript - 更改 md-autocomplete 的占位符文本的 css

javascript - Jquery — 如何更改 DOM 外部的 <select> 值然后注入(inject)?

jquery - 使用 JQuery 将 div/image 部分滑出

javascript - 处理我页面上任何 &lt;textarea&gt; 的 keydown 事件

javascript - 页面加载偏移值设置为 0。计算检查值