我需要从属性name="data[0][post_title]"
获取数字值并将其放入变量
我该怎么做呢?
我是这样开始的,但不知道如何获得数据的价值
var ele = document.getElementsByTagName('name');
这是整个html标签
<input class="post_title" id="title_0" placeholder="Enter Post Title" name="data[0][post_title]" value="text" type="text">
答案 0 :(得分:1)
好吧,我想我理解你的问题
您正在尝试访问属性并提取数字。在这种情况下,您将执行以下操作。
document.getElementsByClassName("post_title")[0].getAttribute("name")
.match(/\d+/);
您的input元素的类名称为post_title
。要访问此元素,您需要使用getElementsByClassName
。这将返回一个集合,因此要访问特定元素,您需要将元素的索引放在该类名称中。在你的情况下,那是零。
要访问属性,我们使用getAttribute
方法。在您的情况下,您想要访问name
属性。
要查找数字,我们需要搜索正则表达式。我们可以使用match
函数执行此操作。正则表达式/\d+/
找到任意数字。
在这里试试这个例子
var number = document.getElementById("number");
var index = document.getElementsByClassName("post_title")[0].getAttribute("name")
.match(/\d+/);
number.innerHTML = index;
<input class="post_title" id="title_0" placeholder="Enter Post Title" name="data[0][post_title]" value="text" type="text">
<p id="number"></p>
答案 1 :(得分:1)
如果要使用input
属性迭代name
个元素,请使用选择器input[name]
。
为了检索属性值的方括号中的数字,您可以匹配表达式/\[(\d+)\]/
。例如,name="data[0][post_title]"
将返回0
。
请参阅this example。
var elements = document.querySelectorAll('input[name].post_title');
Array.prototype.forEach.call(elements, function (el) {
var match = el.name.match(/\[(\d+)\]/),
number = match !== null ? match[1] : null;
console.log(number);
});