问题
I have the following HTML:
<input class="vertical-tabs-active-tab" type="hidden" value="account" name="tabs__active_tab">
I need JavaScript that will change the value of "account" to "yolo".
I thought I could do this:
document.getElementsByClassName('vertical-tabs-active-tab').setAttribute("value", "yolo");
But that produces an error of:
document.getElementsByClassName(...).setAttribute is not a function
I'm not able to add an "id" to input, I have to change the value based on class.
回答1:
document.getElementsByClassName('vertical-tabs-active-tab')[0].setAttribute("value", "yolo");
document.getElementsByClassName
returns an array of elements, specify the index of the element you wish to change.
回答2:
This may do what you want:
var elms = document.getElementsByClassName('vertical-tabs-active-tab')
for (var i = 0; i < elms.length; i++) {
if (elms[i].getAttribute("value") === "account"){
elms[i].setAttribute("value", "yolo");
}
}
回答3:
getElementsByClassName return a list/array of elements. Pick element through index and set value on it. You can also iterate over elements. getElementById return only one element.
来源:https://stackoverflow.com/questions/19798742/change-value-attribute-by-class-via-javascript