我正在尝试从具有指定类的每个对象中通过id获取元素,因此我可以从中获取价值,但它说:
i [i] .getElementById不是函数
function filterBy()
{
var a, txtValue;
var e = document.getElementById("filterBy");
var strUser = e.options[e.selectedIndex].value;
ul = document.getElementById("allproducts");
li = ul.getElementsByClassName('card');
for (i = 0; i < li.length; i++)
{
a = li[i].getElementById("prodFilter");
txtValue = a.value;
if (e.options[e.selectedIndex].value == "all")
{
li[i].style.display = "";
}
else if (a == strUser)
{
li[i].style.display = "";
}
else
{
li[i].style.display = "none";
}
}
}
如何获取每个元素“ li”内部的id元素?
答案 0 :(得分:2)
我们有document.getElementById
,但没有element.getElementById
。您可以使用querySelector
:
li[i].querySelector('#prodFilter');
请注意,id
在文档中应该是唯一的,请考虑将其替换为class
。
答案 1 :(得分:0)
我认为您正在混淆一些事情。
public static void numFreq(List<Integer> list) {
Map<Integer, Integer> map = new HashMap<>();
list.stream().forEach(i -> map.put(i, 1 + map.getOrDefault(i, 0)));
System.out.println(map.entrySet().stream().map(val -> String.format("%s^%s",
val.getKey(), val.getValue())).collect(Collectors.joining("*")));
}
上面的代码将提供一个HTMLElementCollection,它几乎是一个元素数组。
li = ul.getElementsByClassName('card');
这将为您提供li元素,然后将其调用getElementById()。但是,并非所有元素都具有此功能。我相信只有文档(https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById)。
因此您可以尝试使用此方法,而不要使用for (i = 0; i < li.length; i++)
{
a = li[i].getElementById("prodFilter");
}
li[i]