获取javascript中的下一个子元素,其innerHTML是动态值

时间:2016-03-03 16:15:02

标签: javascript php jquery html css

我有一个带按钮&amp ;;的父元素php代码中的子div。子div具有动态分配的innerHTML,并且还在输出中动态显示。

Php代码:

$loc = $sdid;  /*get value according to some loop condition thus this value 
               changes as loop iterates*/        
echo '<div id="parent">
      <input type="button" id="investbutton" value="Invest" onclick="InputInvest()"> 
      <div id="child">'.$loc.'</div> 
      </div>';

现在,子项具有$ loc变量的动态值。

单击按钮时,将调用InputInvest():

function InputInvest()
{
   var x=0;
   x= document.getElementById("investbutton").nextSibling.innerHTML;

   document.write(x);   
}

但是,这些内容正在显示未定义的&#39; 如何解决这个错误?

修改 解决以前的问题:

x = document.getElementById("investbutton").nextElementSibling.innerHTML;

问题2: 但现在输出只有第一个for循环条件值。我认为javascript无法重新分配x,因为值肯定正在迭代...或者可能是输入标记无法动态获取值。 欢迎提出任何新的建议!

1 个答案:

答案 0 :(得分:2)

尝试使用nextElementSibling

x = document.getElementById("investbutton").nextElementSibling.innerHTML;

因为换行符会被视为text node。并且它没有名为innerHTML的属性。

DEMO

.php 中,

<input type="button" class="investbutton" value="Invest" onclick="InputInvest(this)">

<强> JS

function InputInvest(_this) {
   var x = _this.nextElementSibling.innerHTML;
   document.write(x);   
}