JS:最后输入元素的名称(HTML/PHP)

JS: name of last input element (HTML/PHP)

我最好列一个清单来解释我想做的步骤:

  1. 获取 html 输入的最后一个元素的名称(已通过 PHP 生成)

基本设置如下所示:

<input type='text'name='E_8' value= '123' />
<input type='text'name='E_9' value= '456' />
<input type='text'name='E_10' value= '789' />
<input type='submit' name='submit' value='Update'/>
  1. 将其传递给 JS 函数
  2. 追加一些附加字段(使用部分名称作为新字段的 ID

JS 脚本运行良好,我可以添加字段。此外,PHP 脚本正在处理字段的内容并写入数据库。

简而言之:无论有多少个字段,如何获取最后一个值?

编辑:我忘记了还有一个提交按钮也会作为最后一个元素出现...抱歉

jQuery...

var lastInputName = $('input[type="text"]:last').attr('name');

下面的 jQuery 代码应该可以解决问题。

var lastValue = $("input[type=text]:last").val();

还有 jQuery:

var $inputs = $("input[type=text]");
var lastValue = $inputs[$inputs.length - 1].value;

使用CSS3 selectors in combination with sizzle (jquery)定位最后一个元素

var name = $('input[name^=E_]:last')[0].name

有很多方法,但鉴于所有其他答案都依赖于 jQuery 库(这增加了不必要的开销),我将重点展示一些简单的 JavaScript 方法(有效在 IE8+ 以上的最新浏览器上)。

var allTextInputs = document.querySelectorAll('input[type="text"]'),
    lastInput = allTextInputs[allTextInputs.length - 1],
    lastInputName = lastInput.name;

var allInputsTxt = document.querySelectorAll('input[type="text"]');
var lastInput = allInputsTxt[allInputsTxt.length - 1];
var lastInputName = lastInput.name;
var lastInputValue = lastInput.value;
alert('last input name : ' + lastInputName + '; last input value : ' + lastInputValue);
<input type='text'name='E_8' value= '123' />
<input type='text'name='E_9' value= '456' />
<input type='text'name='E_10' value= '789' />
<input type='submit' name='submit' value='Update'/>

如果您想要的是 value 而不是 name 属性,请在使用与上面得到最后一个 <input type="text"/>:

的名字
var lastInputValue = lastInput.value;

这些方法将在代码为 运行 的位置给出文档中 type="text" 的最后一个 <input /> 的值;要查找动态添加到文档中的最后一个 <input /> 的值,您需要在插入该元素后重新运行 一种工作方法。

PHP 或 JavaScript 中的最后一个值? 在 PHP 中,字段通常作为数组传递,因此您可以使用

获取最后一个值
end($array)

如果你这样命名你的文件就更好了

<input type='text'name='E[8]' value= '123' />
<input type='text'name='E[9]' value= '456' />
<input type='text'name='E[10]' value= '789' />

在 JS 中,您需要将字段放入数组中并获取最后一个....您需要这样的东西

var myFields = document.forms["myform"].getElementsByTagName('input'),
var lastValue = myFields[(myFields.length-1)].value;

通过将您的代码包装在父元素中,假设使用属性 id="inputs",这是一个普通的 DOM(没有 jQuery)解决方案:

// start by finding the last-most element
var lastInput = document.getElementById('inputs').lastElementChild;
// search backward to the last 'text' element
while (lastInput && lastInput.type !== 'text') {
    lastInput = lastInput.previousElementSibling;
}
// and get its value
var lastValue = lastInput ? lastInput.value : null;

此解决方案有趣的部分是不创建数组,因此可以节省一些 JavaScript 内存。 Firefox、Chrome 和 IE 9 应该没问题。