Javascript-如何从特定div类中的标记获取属性值?

Javascript-如何从特定div类中的标记获取属性值?,javascript,html,dom,Javascript,Html,Dom,我需要从中检索值的HTML代码片段: <div class="elgg-foot"> <input type="hidden" value="41" name="guid"> <input class="elgg-button elgg-button-submit" type="submit" value="Save"> </div> 但是,我需要确保我实际上是从“elggfoot”内部检索值,因为HTML代码中有多个div类 我可以这样

我需要从中检索值的HTML代码片段:

<div class="elgg-foot">
  <input type="hidden" value="41" name="guid">
  <input class="elgg-button elgg-button-submit" type="submit" value="Save">
</div>
但是,我需要确保我实际上是从“elggfoot”内部检索值,因为HTML代码中有多个div类

我可以这样上课:

var a = document.getElementsByClassName("elgg-foot")[0];
    var a = document.getElementsByClassName("elgg-foot")[0];
    var b = a.getElementsByTagName("input")[0];
    var attribute = b.attributes[1].value;
    console.log(attribute); // print 41
然后我尝试以各种方式将它与
varx
结合起来,但我并不真正知道如何使用语法/逻辑。 例如:

var full = a.getElementsByTagName("input")[0];
所以:从唯一类elg foot内部检索值41

我花了几个小时在谷歌上搜索,但找不到解决方案(部分原因是我不知道到底要搜索什么)


编辑:谢谢大家的回答,他们似乎都很有效。我差点让它自己工作,只是在我的原始代码中忘记了一个
[0]
。同样欣赏JQuery,以前从未使用过它:-)

最简单的方法是使用JQuery和CSS选择器:

$(".elgg-foot input[name='guid']").val()
$(“.elgg-foot”)确实总是会得到一个类为“elgg-foot”的元素,但如果您再进一步,可以使用派生选择器:

$(".elgg-foot input[name='guid']").val()
这确保您只获得名为guid的输入,它是用类elgg foot标记的元素的子元素

现代浏览器中的等效方法是本机querySelectorAll方法:

document.querySelectorAll(".elgg-foot input[name='guid']")
或者你可以自己做你想做的事:

var x = document.getElementsByClassName("elgg-foot")
var y = x.getElementsByTagName("input")[0];

假设您知道它始终是div中的第一个输入

,您可以像这样使用
querySelector

var x = document.querySelector(".elgg-foot input");
var y = x.value;

通过选择器查询dom


querySelector将从选择器返回第一个匹配项。此选择器将找到类为elgg foot的元素,然后查看其中的输入元素以查找一个命名guid,然后获取所选元素的值。

您可以这样组合它:

var a = document.getElementsByClassName("elgg-foot")[0];
    var a = document.getElementsByClassName("elgg-foot")[0];
    var b = a.getElementsByTagName("input")[0];
    var attribute = b.attributes[1].value;
    console.log(attribute); // print 41

将DOM视为它所在的树。您可以使用与从根(文档)获取元素相同的方式从元素获取元素。

我认为最简单的方法是使用JQuery。但只使用javascript

the simplest way would be:

var div = document.getElementsByClassName("elgg-foot")[0];
var input = div.getElementsByTagName("input")[0];
alert(input.value)

看看这里的JSFIDLE:

您反对使用jQuery吗?
var x=a.getElementsByTagName(“输入”)[0]似乎应该可以工作。(我有一个更大的计划,然后只是使用jQuery来检索元素。:)