i have this variable
formEditable = document.getElementById("formid").getElementsByTagName("input");
i want it like that
formEditable = $("#formid").getElementsByTagName("input");
i have this variable
formEditable = document.getElementById("formid").getElementsByTagName("input");
i want it like that
formEditable = $("#formid").getElementsByTagName("input");
In case you have many <input>s in the page, you should use
// Locate the first element with ID `formid`,
// then query its descendants for `<input>` elements.
formEditable = $("#formid").find("input");
for performance reasons since selectors are evaluated right-to-left.
When using the query $("#formid input"), first all <input>s are located, then they are filtered based on their ancestor elements, looking for an ancestor with ID formid.
This is nothing unique to jQuery, but your original solution actually takes this into account:
formEditable = document.getElementById("formid").getElementsByTagName("input");
Note that jQuery queries return a jQuery Object, not a DOMNodeList of elements. So the variable formEditable will be a jQuery Object. To convert a jQuery Object to an array, use the toArray method.
You can use a single selector string instead:
const inputsInsideForm = $('#formid input');
This will give you a jQuery collection of all input elements which are descendants of the #formid element.
If you had to use getElementsByTagName instead, extract the element from the $("#formid") collection first:
$("#formid")[0].getElementsByTagName("input");
This will give you a live HTMLCollection of those inputs.