如何使用 dojo 从 innerText 或 InnerHTML 获取字符数?
2019-05-09
482
我必须在我的应用程序中使用
Dojo
,并且我尝试在
HTML
元素中获取总数,但一直出现错误。
这是我的代码:
var attributeIcons = dojo.query(".attribute-icon");
if (attributeIcons.innerText.length = 4) {
console.log(attributeIcons);
}
我也尝试使用此方法:
var attributeIcons = document.getElementsByClassName("attribute-icon").innerHTML.length;
console.log(attributeIcons);
每种方法都给出相同的错误:
Uncaught TypeError: Cannot read property 'length' of undefined
2个回答
document.getElementsByClassName("attribute-icon")
或
dojo.query(".attribute-icon")
返回数组,您需要像这样迭代该数组,
var attributeIcons = document.getElementsByClassName("attribute-icon");
Array.prototype.forEach.call(attributeIcons, function(el) {
console.log(el.innerHTML.length);
});
ravibagul91
2019-05-09
dojo.query() 和 document.getElementsByClassName() 都返回一个类似数组的对象。这意味着您无法在节点数组上调用 .innerHTML(您将得到未定义的结果),因此您无法调用 .length。
查看以下两个参考资料: https://dojotoolkit.org/reference-guide/1.7/dojo/query.html , https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName
尝试运行以下命令查看您的数组。
var attributeIcons = dojo.query(".attribute-icon");
console.log(attributeIcons)
// or
var attributeIcons = document.getElementsByClassName("attribute-icon");
console.log(attributeIcons)
您可以挑选其中一个数组项,然后对其运行 .innerHTML.length,但不能对整个数组项运行。数组。
var attributeIcons = dojo.query(".attribute-icon");
console.log(attributeIcons[0].innerHTML.length)
// or
var attributeIcons = document.getElementsByClassName("attribute-icon");
console.log(attributeIcons[0].innerHTML.length)
希望有帮助!
Nison M
2019-05-09