我怎樣才能得到一個輸入元素的名稱屬性以特定值結束使用JavaScript?
我發現這個$('input[name$="value"]')
方法可在jQuery。
有沒有像JavaScript中可用的功能?由於某些原因,我無法使用jQuery。
我怎樣才能得到一個輸入元素的名稱屬性以特定值結束使用JavaScript?
我發現這個$('input[name$="value"]')
方法可在jQuery。
有沒有像JavaScript中可用的功能?由於某些原因,我無法使用jQuery。
我很驚訝,沒有人提到過這一點呢。您是否嘗試過:
var elements = document.querySelectorAll('input[name$="value"]');
如果瀏覽器支持querySelectorAll
方法這隻會工作,但它是如果支持,找到了jQuery使用下面。
下面是列出的方法瀏覽器支持表:我要去承擔
提前五十秒......嘆息...... =/+1 – 2012-04-26 14:18:06
這是一個很好的答案。+1我現在可以直接刪除我的。:/ – 2012-04-26 14:18:38
爲什麼還要麻煩發佈這個?OP沒有學到任何東西,還有更好的選項可用 – 2012-04-26 17:55:35
該方法返回元素
var elements = document.getElementsByName("value");
你可以這樣做:
console.log(document.getElementsByName("value")[0]);
或者,如果你想找到第一input
元素名稱中帶有「值」:
var searchString = "value";
var elems = document.getElementsByTagName('input'), wantedElem;
for(var i = 0, len = elems.length; i < len; i++) {
if(elems[i].name.lastIndexOf(searchString) == elems[i].name.length-searchString.length) {
wantedElem = elems[i];
break;
}
}
console.log(wantedElem);
你已經放置屬於他們的地方(在<form>
元素)這些<input>
元素。
通過DOM API遍歷表單控件的最簡單方法是通過HTMLFormElement::elements
HTMLCollection
。它允許命名遍歷,對於特定元素非常方便。
例如,請考慮下面的標記:
<form action="./" method="post" name="test"
onsubmit="return false;">
<fieldset>
<legend>Test Controls</legend>
<input name="control_one" type="text"
value="One">
<input name="control_two" type="text"
value="Two">
<input name="control_three" type="text"
value="Three">
</fieldset>
</form>
此之後,需要一些簡單的文檔樹遍歷。這是它的全部:
var test = document.forms.test,
controls = test.elements;
function traverseControl(control)
{
var patt = /one$/,
match = patt.test(control.name);
if (match) {
// do something
console.log(control);
}
}
function traverseControls(nodes)
{
var index;
if (typeof nodes === "object" &&
nodes.length) {
index = nodes.length - 1;
while (index > -1) {
traverseControl(
nodes[index]
);
index -= 1;
}
}
}
traverseControls(controls);
正如你所看到的,它確實不是太困難。使用HTMLCollection
的結果是新舊瀏覽器的支持。由於HTMLCollection
在DOM 0中實現,因此得到廣泛支持。
未來,我會建議使用遍歷模式,這遠不如模糊。如果您控制了正在遍歷的文檔樹(即您編寫了標記),則應該已經知道控件的控制。否則,必須使用類似前述的模糊方法。
工作實施例:http://jsbin.com/epusow
更多,this article可以細讀。
JQuery是用JavaScript編寫的,所以在你的函數中包含JQuery源代碼:P – 2012-04-26 14:12:26
他說他不能使用jQuery。 – 2012-04-26 14:12:39
由於某種原因?解決這個問題,而不是解決這個問題。 – 472084 2012-04-26 14:13:11