如何使用javascript访问隐藏的输入

时间:2013-05-29 23:08:10

标签: javascript html dom

我尝试做的是访问div中的隐藏对象。发生的事情是用户将点击按钮,然后执行某些任务,例如删除用户。如果我展示我拥有的东西,这可能会更容易。

<div class="mgLine">
    <input type="hidden" name="tenentID" value="1">
    <p class="mgName">James Gear</p>
    <input type="text" class="mgBill" value="" placeholder="Post Bill Link Here">
    <a href="#" class="mgButton" onclick="alertTest(this)">Submit Bill</a>
    <a href="#" class="mgNP">Not Paid</a>
    <a href="#" class="mgButton">Change Password</a>
    <a href="#" class="mgButton">Delete User</a>
</div>

我希望系统做的是在按下“提交账单”时提醒它从隐藏字段中获取的值。

function alertTest(e){
//e.parentNode
window.alert(e.parentNode.getElementsByTagName("tenentID")[0]);
}

我正在尝试使用JavaScript DOM来访问该元素。我希望这至少在某种程度上是有道理的。页面上会有很多条目。

5 个答案:

答案 0 :(得分:6)

您需要使用getElementsByName代替getElementsByTagName

function alertTest(e){
//e.parentNode
window.alert(document.getElementsByName("tenentID")[0]);
}

getElementsByTagName用于根据标签选择元素,例如div,输入等。

getElementsByName

getElementsByTagName

意识到你可能有多个div部分,你的隐藏输入是你可以使用它们的第一个孩子: -

e.parentNode.getElementsByTagName("input")[0].value;

e.parentNode.firstElementChild.value;

如果它不是firstCHild并且您知道该位置,那么您可以使用

e.parentNode.children(n).value; //n is zero indexed here

Fiddle

答案 1 :(得分:5)

现代方法是使用querySelector

e.parentNode.querySelector("[name=tenentID]");

http://jsfiddle.net/ExplosionPIlls/zU2Gh/

但是你也可以通过一些更多的手动DOM解析来实现:

var nodes = e.parentNode.getElementsByTagName("input"), x;
for (x = 0; x < nodes.length; x++) {
    if (nodes[x].name === "tenentID") {
        console.log(nodes[x]);
    }
}

http://jsfiddle.net/ExplosionPIlls/zU2Gh/1/

答案 2 :(得分:0)

试试这个:

function alertTest(e){
    alert(e.parentNode.getElementsByName("tenentID")[0].value);
}

答案 3 :(得分:0)

我通常在隐藏元素上设置id属性,然后使用getElementById

<input type="hidden" id="tenentID" name="tenentID" value="1">

然后我可以使用......

var tenentValue = document.getElementById("tenentID").value;

答案 4 :(得分:0)

一般来说,访问特定元素的最佳选择是给它一个ID,然后使用getElementById()。

function alertTest(ID){
  alert(document.getElementById(ID).value);
}

名称可以在页面上重复,但ID必须是唯一的。