使用 JavaScript 获取所有输入对象的列表,无需访问表单对象

2023-12-29

我需要得到所有input对象并操纵onclick param.

下面的工作是为了<a>链接。寻找这样的东西input tags.

for (var ls = document.links, numLinks = ls.length, i=0; i<numLinks; i++){
  var link = unescape(ls[i].href);
  link = link.replace(/\\'/ig,"#");
  if(ls[i].href.indexOf("javascript:") == -1)
  {
    ls[i].href = "javascript:LoadExtern(\\""+link+"\\",\\"ControlPanelContent\\",true,true);";
  }
}

(请参阅答案末尾的更新。)

你可以获得一个NodeList https://developer.mozilla.org/En/DOM/NodeList所有的input元素通过getElementsByTagName (DOM规范 http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-A6C9094, MDC https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName, MSDN http://msdn.microsoft.com/en-us/library/ms536439(VS.85).aspx),然后简单地循环它:

var inputs, index;

inputs = document.getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
    // deal with inputs[index] element.
}

我在那里用过它document,这将搜索整个文档。它也存在于单个元素上(DOM规范 http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1938918D),允许您仅搜索它们的后代而不是整个文档,例如:

var container, inputs, index;

// Get the container element
container = document.getElementById('container');

// Find its child `input` elements
inputs = container.getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
    // deal with inputs[index] element.
}

...但你说过你不想使用父母form,所以第一个例子更适用于您的问题(第二个例子只是为了完整性,以防其他人找到这个答案需要知道)。


Update: getElementsByTagName是执行上述操作的绝对好方法,但是如果您想做一些稍微复杂的事情,例如只查找所有复选框而不是所有复选框,该怎么办input元素?

这就是有用的地方querySelectorAll进来:它让我们获得匹配的元素列表我们想要的任何 CSS 选择器。对于我们的复选框示例:

var checkboxes = document.querySelectorAll("input[type=checkbox]");

您还可以在元素级别使用它。例如,如果我们有一个div我们的元素element变量,我们可以找到所有的span和班级一起foo里面的那些div像这样:

var fooSpans = element.querySelectorAll("span.foo");

querySelectorAll和它的表弟querySelector(这只是找到first所有现代浏览器都支持(匹配元素而不是给你一个列表),IE8 也支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JavaScript 获取所有输入对象的列表,无需访问表单对象 的相关文章

随机推荐

  • 如何执行存储在 MySQL 表列中的查询?

    mysql gt select from CT CID MID REPORT QUERY 1 1 select from emp 2 2 select from student 2 rows in set 0 00 sec 我想执行查询RE
  • 在 rgl 中填充轮廓

    以下代码绘制一些点并用线连接它们 我要填写 由选择颜色和 Alpha 的线条包围的区域 我似乎不知道如何使用 rgl 做到这一点 Open plot and add axes open3d decorate3d xlim c 0 4 yli
  • 如何使用 Qt 4 创建 OpenGL 3 上下文?

    我想学习使用 OpenGL 进行图形编程 因为我刚刚开始学习它 所以我决定学习新的 OpenGL3 的做事方式 据我所知 必须为此创建一个 OpenGL 3 上下文 如果我理解正确的话 新的 OpenGL 3 2 中的核心配置文件 嗯 我考
  • 我几乎每次都将 Stateless Widget 与 BLoC 一起使用。我错了吗?

    我很难理解如何使用 Flutter 处理某些特定情况下的状态 例如 假设我需要一个页面 单击按钮即可从 API 获取数据 这样的请求可能需要时间或者可能发生任何类型的问题 因此 我可能会使用 BLoC 模式在请求经历各种 状态 时正确通知用
  • JQuery 表排序器问题

    我在使用 JQuery 时遇到了一些问题表格排序器 http tablesorter com docs 插入 如果单击列标题 它应该按此列对数据进行排序 但存在一些问题 行未正确排序 1 1 2183 236 总行数包含在排序中 关于 2
  • 将简单查询转换为蛋糕查询?

    实际上我有 1 个查询 但我无法将其转换为 CakePHP 查询格式 result select from esl userresults where esl userresults esl songID esl lyrics id and
  • 多线程可以在单处理器系统上实现吗?

    我一直遵循这样的概念 多线程只能在多处理器系统上实现 其中有多个处理器分配给每个线程 并且每个线程可以同时执行 在这种情况下没有调度 因为每个线程都有单独的资源专用于它 但我最近在某处读到我也可以在单处理器系统上执行多线程 这是对的吗 如果
  • 是否可以使固定位置的 div 响应式?

    我一直在尝试使一些 SVG 数据图表具有响应性 但似乎无法通过应用于元素的当前 CSS position fixed 来做到这一点 如果可能的话 我正在寻找一种不依赖于媒体查询的解决方案 因为我有多个元素需要应用它 如果这是不可能的 那么在
  • 使用PostgreSQL plpython3u函数返回一个表

    我想退回桌子 该函数获取一个数组 查询为 select function name array agg column name from table name 我编码如下 create type pddesctype as count fl
  • C# 无法加载文件或程序集“Microsoft.SharePoint.Library”

    我正在 64 位版本的 Windows 7 上进行开发 运行 MOSS SharePoint 这是我的开发机器 现在 当我将 Web 服务应用程序部署到测试服务器 Windows 2003 32 位 未安装 Sharepoint 时 我收到
  • iOS 中的上滑菜单

    如何创建一个像相机胶卷中那样的 向上滑动 菜单 您可以在其中选择是否要将图像作为电子邮件 彩信等发送 An UI操作表 http developer apple com library ios documentation uikit ref
  • 带有动态 SQL 语句的游标 For 循环

    有没有办法用动态 SQL 语句执行 Cursor For 循环 如果我不想声明记录 我可以这样做 仅当我声明游标时 For I in cuSelect Loop dbms output put line I NAME End Loop 我可
  • 在三个js中前后移动相机

    如何沿着相机所面对的轨迹从固定点前后移动相机 我知道有几个控制脚本可以执行此操作 但我需要执行一些自定义操作 并且我无法分解它们的代码来找出如何隔离上述行为 我见过这个答案 https stackoverflow com questions
  • Pusher 客户端 /pusher/auth 返回错误 500(内部服务器错误)

    我正在开发一个快速聊天应用程序 以提高我的推送技能 并决定开始进入私人频道 我在相同的客户端代码上使用的公共频道应用程序并稍微调整了 App Events chatmessagesent 事件 更改了 return new Channel
  • 无法将类中的 PDO 对象初始化为属性[重复]

    这个问题在这里已经有答案了 可能的重复 将属性声明为对象 https stackoverflow com questions 2202995 declare property as object class core public dbh
  • 如何在不使用 UINavigationController 的情况下在新的非模型视图控制器中进行转换?

    以下似乎是一个典型的用例 您使用显示登录屏幕的 LoginViewController 启动应用程序 用户成功登录后 您希望显示应用程序的主视图 我们将其称为 MainViewController 您不想将 LoginViewControl
  • SimpleXML SOAP 响应命名空间问题

    在为此花费了几个沮丧的时间后 我请求您的帮助 我正在尝试从 SOAP 响应中获取特定节点的内容 响应是
  • Linux下如何检查串口是否打开?

    如何使用 Posix C 函数检查 Linux 中的串行端口是否已打开 我想检查串口的状态来检查串口是否打开 我想知道什么方法适用 检查文件描述符查看串行端口是否打开并且 检查串口文件名查看串行端口是否打开 在下面的示例中为 dev tty
  • 我应该访问受保护的方法进行单元测试吗?

    和 关联这个问题 https stackoverflow com questions 15197141 how to properly test an abstract class我之前问过 我的单元测试再次陷入困境 我当前的问题与测试有关
  • 使用 JavaScript 获取所有输入对象的列表,无需访问表单对象

    我需要得到所有input对象并操纵onclick param 下面的工作是为了 a 链接 寻找这样的东西input tags for var ls document links numLinks ls length i 0 i a