简体   繁体   English

我有 javascript 代码 getElementsByClassName 它将如何在 php 上?

[英]I have the javascript code getElementsByClassName how it will be on php?

i have this code on javascript我在 javascript 上有这个代码

String(document.getElementsByClassName('ord-total-val')[0].innerText).substr(0,3)

this cod grab class element 'ord-total-val', and returns its text string to me.这条鳕鱼抓取 class 元素“ord-total-val”,并将其文本字符串返回给我。 I try this:我试试这个:

$classname="blockProduct";
$finder = new DomXPath($doc);
$spaner = $finder->query("//*[contains(@class, '$classname')]");

But my knowledge is not enough to complete it.但我的知识不足以完成它。 Can you help my to write this stroke on php?你能帮我在 php 上写下这个笔画吗?

To be fair your code is virtually complete and appears to work OK when I combined it with a basic test case.公平地说,您的代码实际上是完整的,并且当我将它与基本测试用例结合使用时,它似乎可以正常工作。

<?php


    $strhtml="<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title></title>
        <style></style>
        <script></script>
    </head>
    <body>
        <p>wibble wobble</p>
        <div class='blockProduct'>whoohoo! Some text</div>
        <p>lorem ipsum dolor solit...</p>
        <span class='blockProduct'>and even more text in a different HTML element</span>
    </body>
</html>";


    $className='blockProduct';


    $dom=new DOMDocument;
    $dom->loadHTML($strhtml);
    
    $xp=new DOMXPath($dom);
    $expr='//*[ contains( @class, "'.$className.'" ) ]';
    
    $col=$xp->query( $expr );
    if( $col && $col->length > 0 ){
        foreach( $col as $node ){
            $text=$node->nodeValue;
            $substr=substr($text,0,3);
            
            echo $substr . '<br />';
        }
    }
?>

Given the HTML source above this will output:鉴于上面的 HTML 源代码,这将是 output:

who
and

Using your code, but modified just slightly to use the XPath object already created, $xp :使用您的代码,但稍作修改以使用 XPath object 已经创建, $xp

$spaner = $xp->query("//*[contains(@class, '$className')]");

This gives a nodelist so you need to iterate through this nodelist to show the contents.这给出了一个nodelist ,因此您需要遍历此nodelist以显示内容。

foreach($spaner as $span)echo $span->nodeValue;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我们在javascript中有getElementsByClassName吗? - Do we have getElementsByClassName in javascript? PHP中的Java蓝调:getElementById和getElementsByClassName - Javascript blues in PHP: getElementById & getElementsByClassName Javascript:如何在PHP的while循环内编写document.getElementsByClassName() - Javascript: how to write document.getElementsByClassName() inside while loop in php 在Javascript中,如何迭代getElementsByClassName()的结果并修改显示属性 - In Javascript how do I iterate the results of getElementsByClassName() and modify display attribute 如何使用纯Javascript连接getElementsByClassName的结果? - How do I concatenate the results of getElementsByClassName in plain Javascript? 如何从HTML获取ElementsByClassName并将它们推送到JavaScript数组中? 那我怎么能提醒这个阵列呢? - How can I getElementsByClassName from HTML and push them into a JavaScript Array? How can I then alert this array? 如何在 JavaScript 中使用 .getElementsByClassName 更改背景颜色? - How to change background color using .getElementsByClassName in JavaScript? 如何通过getElementsByClassName()通过javascript获取和使用html中的表? - How to get and use table in html by javascript by getElementsByClassName()? 如何使Javascript的“ getElementsByClassName()”正常工作? - How to get Javascript's “getElementsByClassName()” to work? 如何在搜索节点中编写Javascript-不使用getElementsByClassName - How to write Javascript to search nodes - without getElementsByClassName
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM