2016-01-04 96 views
1

我需要從屬性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

您能否重新解釋問題並添加HTML結構? –

回答

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); 
}); 
+1

謝謝你,工作得很好! – Viktor

1

好吧,我想我明白你的問題

您正試圖訪問一個屬性並提取一個數字。在這種情況下,您可以執行以下操作。

document.getElementsByClassName("post_title")[0].getAttribute("name") 
.match(/\d+/); 

你輸入元件具有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>

+0

''不是一個有效的元素,有些問題含糊不清。 –

+0

@Richard Hamilton發佈了整個html代碼 – Viktor

+0

@Richard Hamilton非常感謝你soo多了一個問題,我有3個輸入頁面,他們有不同的數字,我想提醒他們只是爲了檢查他們的號碼 – Viktor