首页 > 解决方案 > 如何从父 div 获取 getElementById 值?

问题描述

 setInterval(function(){
      var parent = document.getElementByClassName("b");
      var child = parent.children[1];
      var intext = child.innerHTML;
      var price = parseInt(intext.textContent.replace(/,/g,''));
      var beforecalf = price - 5000 ;
      var beforecals = price - 4000 ;
                                                
      if(document.getElementById("basic_0")) {
          bpricefirst = String(beforecalf).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
          bpricesecond = String(beforecals).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
          document.querySelector('#thislogin').textContent = bpricefirst;
          document.querySelector('#thisnotlogin').textContent = bpricesecond;
        }
        },1000);
<div class="a">
  <span class="first">price :</span>
  <span class="second">25$</span>
</div>

<div class="b">
  <span class="first">price :</span>
  <span class="second">20$</span>
</div>

<div id="basic_0"> <!-- script will run if i have this #basic_0 div -->
</div>

<div id="thislogin"></div> 
<div id="thisnotlogin"></div>

我尝试做的是从 .b div 框中带来 .second vlaue(20 美元)。如您所见,名为 a 和 b 的 div 框内部具有完全相同的类名。(第一,第二)

在那里,我必须从 .b div 框中带来 .second 值而不是 .a 所以要做到这一点,我使用了下面的代码,但它不起作用.... :(

var parent = document.getElementByClassName("b");
  var child = parent.children[1];
  var intext = child.innerHTML;
  var price = parseInt(intext.textContent.replace(/,/g,''));

在我尝试这个之前,我这样说

var price = parseInt(document.querySelector('.second').textContent.replace(/,/g,''));

但它带来了 25 美元的价值;; 带 20 美元 vlaue 我要换什么??

任何帮助将不胜感激!谢谢!*不知道原因,为什么它显示为“”......但它是 在这里输入图像描述;;

标签: javascript

解决方案


正如你在这里看到的:https ://www.w3schools.com/jsref/prop_node_parentelement.asp

var x = document.getElementById("myLI").parentElement.nodeName;
<ul>
  <li id="myLI">Coffee</li>
  <li>Tea</li>
</ul>


推荐阅读