Javascript 标签在表单中的位置

Javascript 标签在表单中的位置,javascript,jquery,Javascript,Jquery,是否可以在表单中获取标签的位置?(标记->输入、选择、广播等)我正在动态生成表单。用户可以创建一个将显示给客户机的源代码(他不会编写代码,只是选择标记)。为此,我需要标签在表单中的位置来相应地放置它们 例如: input 1 checkbox 1 select 1 input 2 radio 1 checkbox 2 输入1 复选框1 选择1 输入2 第一台 复选框2 输入2位于第4位置 我会这样做,普通JS: var form = document.getElementById('form_i

是否可以在表单中获取标签的位置?(标记->输入、选择、广播等)我正在动态生成表单。用户可以创建一个将显示给客户机的源代码(他不会编写代码,只是选择标记)。为此,我需要标签在表单中的位置来相应地放置它们

例如:

input 1 checkbox 1 select 1 input 2 radio 1 checkbox 2 输入1 复选框1 选择1 输入2 第一台 复选框2
输入2位于第4位置

我会这样做,普通JS:

var form = document.getElementById('form_id');
var tagType = 'input';
var tagId = 'input_2';

var l = form.children.length;

for (var i = 0; i < l; i++) {
    if (form.children[i].nodeName.toLowerCase() == tagType && form.children[i].id == tagId) {
        console.log('Position:' + i);
        break;
    }
}
var form=document.getElementById('form_id');
var tagType='input';
var tagId=‘输入_2’;
var l=form.children.length;
对于(变量i=0;i
有一些jQuery方法可以获取索引,但由于中间有一些select下拉列表,它无法按预期工作(如果我们有所有的输入标记,它将工作)。我在下面给出了一个例子,请检查它。所以最好的方法是向每个元素添加一个数据属性,然后使用jquery来获取它。它不是动态的,但它会为你工作

功能测试(){
var元素=document.getElementById(“input2”);
警报(“Basedon输入标记索引:”+($(“输入”).Index(元素)+1));
警报(“基于数据属性的索引为:”+$(元素)。数据(“索引”);
}





选择








请解释您需要它做什么。如果表单中没有其他元素,那么jquery index会给您这个(
.index()
在元素上),请看表单包含其他元素,如div。您的问题有点过于宽泛,并且没有示例标记或任何类型的JS可引导。你能展示一下你的尝试吗?在
.index()
上的jQuery文档搜索中,OP提供了jQuery。我更喜欢香草JS,如果更详细一点,性能会更好。:)这不是很难编码吗?输入标记可能更复杂。如果表单中也有div,这会起作用吗?我希望只有表单标签,如输入,选择,无线电等应该考虑@if语句检查标记是否是一个输入,它是否有特定的ID,因此您可以有多个输入标记,您只需在每个输入上添加一个增量ID,这只是一个示例,您可以放置变量而不是
'input'
'input_2'
,以满足您的需要。