【问题标题】:Get content of div by css class name通过css类名获取div的内容
【发布时间】:2015-03-31 02:04:38
【问题描述】:

使用 dom 我想从某个特定的 div 中获取内容。 我目前的情况是:我想从 html 结构如下的站点链接中获取内容。我想要我的本地数据库的 css 类数据。我认为这只能使用 dom。

代码如下:

<div class="listing-info-right ">        
    <div class="list-card-field name-address">
    <div class="list-card-user">
        Mr Bimal Kumar Agarwal
    </div> 
</div>

<div class="list-card-field name-address">
    <div class="list-card-phone">
          +91-9386750700,+91-612-2530310,+91-612-2530311
    </div>
</div>

<div class="list-card-field name-address">
<div class="list-card-email">enquiry@elementguestline.com</div></div>
<div class="list-card-field name-address list-card-border">
<div class="list-card-location">28,, Nalini Aparment 4th Floor, Kidwaipuri, Fraser Road, Patna, 800001, Bihar</div>
</div>
</div>

我想获取名为:list-card-user、list-card-phone 和 list-card-location 的 div 类的数据。

在我使用带有 css id 的 dom 进行编码之前,但无法获得任何带有类名的东西..!

请帮我写一些代码。

提前致谢。

【问题讨论】:

  • 你需要javascript或jquery。
  • 欢迎一切,我不知道如何获得这个..!
  • 你的问题到底是什么?
  • 我想从网站 abc.com 获取内容,其 html 结构如上所述。我想获取名为:list-card-user、list-card-phone 和 list-card-location 的 div 类的数据以保存在我的本地主机数据库中。

标签: php html dom


【解决方案1】:

您可以在 Javascript 中使用document.getElementsByClassName 选择您的div。这将返回一个包含该类的所有元素的数组,如果您只有一次出现,那么只需获取第一个节点。

var div = document.getElementsByClassName("list-card-user")[0];

div 变量现在指向你的div,你可以在上面使用一堆函数来获得不同的东西。例如,如果你想要它的内容,你可以这样做:

var content = div.innerHtml;

编辑我使用 Javascript 是因为您的原始问题使用了 Javascript 标记,该标记现在已通过编辑删除。

【讨论】:

  • 过去我已经使用$title= $dom-&gt;getElementById("abc"); 完成了工作,现在的情况是这是来自站点 abc.com,我想要本地数据库的 css 类数据。您能否详细说明这里提到的一些完整的javascript代码..!因为我在使用 javascripts 捕获数据并回显它们方面没有太多经验..!
【解决方案2】:

这是最简单的,也许对你有帮助:)

<div class="listing-info-right ">
    <div class="list-card-field name-address">
        <div class="list-card-user">Mr Bimal Kumar Agarwal</div>
    </div>
    <div class="list-card-field name-address">
        <div class="list-card-phone">+91-9386750700,+91-612-2530310,+91-612-2530311</div>
    </div>
    <div class="list-card-field name-address">
        <div class="list-card-email">enquiry@elementguestline.com</div>
    </div>
    <div class="list-card-field name-address list-card-border">
        <div class="list-card-location">28,, Nalini Aparment 4th Floor, Kidwaipuri, Fraser Road, Patna, 800001, Bihar</div>
    </div>
</div>

输出:

<div id="myNamez"></div>
<div id="myPhonez"></div>
<div id="myLoc"></div>

使用 jQuery:

<script>
$(document).ready(function () {
    var namez='list-card-user';
    var phonez='list-card-phone';
    var locationz='list-card-location';
    document.getElementById('myNamez').innerHTML='namez';
    document.getElementById('myPhonez').innerHTML='phonez';
    document.getElementById('myLoc').innerHTML='locationz';
});
</script>

这是demo

【讨论】:

  • &lt;?php ini_set('max_execution_time', 300); $ch = curl_init("url"); curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); $cl=curl_exec($ch); $dom = new DOMDocument(); @$dom -&gt;loadHTML($cl);?&gt; &lt;div id="myNamez"&gt;&lt;/div&gt; &lt;div id="myPhonez"&gt;&lt;/div&gt; &lt;div id="myLoc"&gt;&lt;/div&gt; &lt;script&gt; $(document).ready(function () { var namez='list-card-user'; document.getElementById('myNamez').innerHTML='namez'; }); &lt;/script&gt; 我做得对吗..?
  • 你说你需要知道javascript。 Dom 参考在这里>php.net/manual/en/domdocument.construct.php 请:p 所以,澄清你的问题,:p
  • 感谢您的回复。我目前的情况是:我想从网站 [link(]abc.com) 获取内容,其 html 结构如上。我想要我的本地数据库的 css 类数据。我认为只有使用 dom 才能做到这一点。
  • 我通过在 php 中使用 dom 在 cmets 中尝试了你的脚本,我得到了这个:appacyber.net/appalab/script_testz/test3.php
  • 是的,一样的..因为有错误..!我在这里问过 :P :D
猜你喜欢
  • 1970-01-01
  • 2016-08-09
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多