我试图计算标题标签中的文字。但它似乎不起作用。我尝试过count(),strlen()等。例如:
<title>Count me!</title>
当我使用strlen()时出现此错误:
strlen() expects parameter 1 to be string, object given
当我使用count时,你得到2.我认为它会计算我文件中的标题标签。
控制器:
$title = $dom->getElementsByTagName('title');
$count = strlen($title);
指数:
{{$count}}
答案 0 :(得分:0)
$title_tag = $dom->getElementsByTagName('title');
foreach($tital_tag as $title){
$title_length = strlen($title->nodeValue);
}
你需要遍历标题标签......这并不意味着你有多个标签。 Dom只返回需要访问的对象 然后你获得标题长度
答案 1 :(得分:0)
根据documentation,DOMDocument::getElementsByTagName
会返回DOMNodeList
个对象,而不是字符串。
您需要使用foreach
循环遍历列表中的元素,并检索每个节点的值的长度。
答案 2 :(得分:0)
使用jquery只是一个替代方法,您可以按如下方式计算字符:
<script type="text/javascript">
$(document).ready(function(){
var title = $(document).prop('title').length;
console.log(title);
});
</script>
答案 3 :(得分:0)
你无法实现这样的结果,因为getElementsByTagName()函数的作用是返回“一个NodeList对象,表示具有指定标记名称的元素集合。”。
即。如果你在ul标签上调用它,它会在ul中为你提供一组li标签。
你可以试试这个;
<html>
<head>
<title>Heello</title>
</head>
<body>
<script type="text/javascript">
var text = document.getElementsByTagName("title")[0].innerHTML.length;//get the length of the first title tag
alert(text);//text no contains the length of characters within the title tag
</script>
</body>
</html>
注意:返回集合中的元素按照它们在源代码中的显示进行排序。