HTML代码片段我需要从以下位置检索值:
<div class="elgg-foot">
<input type="hidden" value="41" name="guid">
<input class="elgg-button elgg-button-submit" type="submit" value="Save">
</div>
我需要得到值41,这很简单:
var x = document.getElementsByTagName("input")[0];
var y = x.attributes[1].value;
但是我需要确保我实际上从内部&#34; elgg-foot&#34;中检索值,因为HTML代码中有多个div类。
我可以这样上课:
var a = document.getElementsByClassName("elgg-foot")[0];
然后我尝试以各种方式将其与var x
结合起来,但我并不是真的知道这样做的语法/逻辑。
例如:
var full = a.getElementsByTagName("input")[0];
所以:从唯一的类elg-foot中检索值41。
我花了几个小时用Google搜索,但无法找到解决方案(部分原因是因为我不确切知道要搜索的内容)
编辑:感谢大家的答案,他们似乎都有效。我几乎让它自己工作了,只是忘记了原始代码中的[0]
。同样欣赏JQuery,之前从未使用过它: - )
答案 0 :(得分:3)
最简单的方法是使用jQuery并使用CSS选择器:
$(&#34; .elgg-foot&#34;)确实总能让你获得一个带有&#34; elgg-foot&#34;的元素,但是如果你更进一步,你可以使用后代选择器:
$(".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中的第一个输入
答案 1 :(得分:1)
你可以这样组合:
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视为树。您可以从根(文档)获取元素中的元素。
答案 2 :(得分:0)
您可以使用querySelector
之类的
var x = document.querySelector(".elgg-foot input");
var y = x.value;
答案 3 :(得分:0)
通过选择器https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector
查询domvar fourty1 = document.querySelector('.elgg-foot input[name=guid]').value;
querySelector将从选择器返回第一个匹配项。这个选择器将找到具有类elgg-foot的元素,然后查看其中一个名为guid的输入元素,然后获取所选元素的值。
答案 4 :(得分:0)