Javascript-如何从特定div类中的标记获取属性值?
我需要从中检索值的HTML代码片段: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类 我可以这样
<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来检索元素。:)