【问题标题】:Searching div for value搜索 div 的值
【发布时间】:2017-06-26 10:08:36
【问题描述】:

我有一个包含多个列表项的页面,其中包含存储信息的 div,如下所示:

<li class="item ">
  <div class="name t-overflow">Symbiotic Ltd.</div>
  <div class="price">
    <span class="wai t-wai-reset">Stock Price: </span>$501.83
  </div>
</li>
<li class="item ">
  <div class="name t-overflow">Health Service</div>
  <div class="price">
    <span class="wai t-wai-reset">Stock Price: </span>$501.08
  </div>
</li>

我需要做的是检查股票价格是否低于 X。例如。我需要将健康服务和股票价格结合起来:健康服务股票价格:501.08 美元

这样我就可以通过正则表达式 Health Service 找到它的价格。对于使用相同 div 名称的不同股票,大约有 30 个具有此信息的 div。 (名称和价格,每一个。)

【问题讨论】:

  • 你目前有什么代码?
  • 将价格放入带有类标识符的跨度内,然后通过 jquery 访问它
  • var x = 1e3; $('li.item').each(function(i) { var price = parseFloat($(this).find('.price').text().replace(/[^.0-9]/g, '')); if (price &lt; x) $(this).css('background', 'yellow' ); });

标签: javascript jquery html css


【解决方案1】:

假设每个项目都包含在一个 li(list item) 中,下面的代码将遍历每个 li 并将 div 文本放入一个数组中,您可以在该数组上执行正则表达式。

Run Snippet below...

CompanyPrices = [];

$('li.item').each(function() {
  CompanyPrices.push($(this).find('.name').text()+ " " +$(this).find('.price').text());
});

//logs final array to console..
console.log(CompanyPrices)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="item">
  <div class="name t-overflow">Symbiotic Ltd.</div>
  <div class="price">
    <span class="wai t-wai-reset">Stock Price: </span> $501.83 </div>
</li>
<li class="item">
  <div class="name t-overflow">Health Service</div>
  <div class="price">
    <span class="wai t-wai-reset">Stock Price: </span> $501.08 </div>

【讨论】:

    【解决方案2】:

    您可以使用 each() 方法遍历所有列表项,并使用 find() 方法查找 text(),然后只需 split() 使用$ 符号的文本即可获取价格,然后您可以使用if 语句检查价格是否小于或大于您的任何数字想要:

    $('.item').each(function(){
      var price = $(this).find('.price').text().split('$')[1];
      console.log(price);
      if(price < 502){
        $(this).css('background', '#f00');
      }
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <li class="item ">
      <div class="name t-overflow">Health Service</div>
      <div class="price">
        <span class="wai t-wai-reset">Stock Price: </span>
        $501.08
      </div>
    </li>
    <li class="item ">
      <div class="name t-overflow">Health Service</div>
      <div class="price">
        <span class="wai t-wai-reset">Stock Price: </span>
        $502.08
      </div>
    </li>
    <li class="item ">
      <div class="name t-overflow">Health Service</div>
      <div class="price">
        <span class="wai t-wai-reset">Stock Price: </span>
        $503.08
      </div>
    </li>

    【讨论】:

      【解决方案3】:

      如果这些值是动态的(即来自 PHP),那么您可以将它们存储在一个变量中。如果它们是设置值(即仅在您更改代码时更改),那么您可以尝试以下解决方案:

      var stock1=document.getElementById('stock').innerHTML;
      stock1=stock1.replace(/Stock price: \$([\d,.]*)/g,"$1");
      document.getElementById('stock').innerHTML=stock1;
      <div id="stock">Stock price: $923.50</div>
      <div id="otherstock">Stock price: $291,402.29</div>

      【讨论】:

        猜你喜欢
        • 2016-05-30
        • 2012-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-18
        • 2017-10-04
        • 1970-01-01
        相关资源
        最近更新 更多