如何在javascript函数中访问某些嵌套div的外部innerHTML

时间:2015-08-04 06:33:13

标签: javascript html click getelementbyid

为了简单起见,我有以下HTML代码:

<div class = "customers" data-popover="true" data-html=true
 data-content="
  <table>
      <c:forEach items="${element.first}" var="btnVal" varStatus="loop"> 
        <c:if test="${not loop.first}">
        <tr> <button onclick='setTestname(innerHTML)' class='btn btn-primary'> ${btnVal}</button> </tr>
        <tr>&nbsp</tr>
        </c:if>
      </c:forEach>  
   </table>
  ">
 <br>${element.first.get(0)}
</div>

这里我试图使用下面的javascript函数使用点击按钮的值:

function setTestname(test){
  test = test.toString().trim();

  document.getElementById('hiddenCostomer').value=test;                     
  setLogfilename(test);
  document.getElementById('form1').submit();
}

上面的代码工作正常,但我不确定如何访问div的值。我想将两个值传递给setTestname

  1. ${btnVal}
  2. ${element.first.get(0)}
  3. 如何获得${element.first.get(0)}

    的价值

    编辑:我想要点击按钮的div的确切值,而不是整个DOM。

3 个答案:

答案 0 :(得分:0)

您应该将值添加到数据属性然后获取它,如下所示:

HTML:

<div id="myid" data-mydata="${element.first.get(0)}"></div>

JS:

document.getElementById("myid").getAttribute("data-mydata");

答案 1 :(得分:0)

您可以传递要获取内容的div的类名。

setTestName(innerHTML, 'customers')

然后将客户用作:

document.getElementsByClassName('customers')

将返回DOM。

答案 2 :(得分:0)

<c:set var="BtnIndex" value="${0}"/>

然后我设置

<tr> <button onclick='setTestname(innerHTML,${BtnIndex + 0})' class='btn btn-primary' > ${btnVal} ${BtnIndex + 0}</button> </tr>

我设置了一个计数器并为每个div分配了一个唯一的数字。后来,我从该唯一计数器的类customers数组中取值作为索引

function setTestname(test,btnIndex){
    test = test.toString().trim();
    btnIndex = btnIndex.toString();

    var elemArray = document.getElementsByClassName('customers');
    for(var i = 0; i < elemArray.length; i++){
        elemArray[i].id = i;
    }

    var elem = document.getElementById(elemArray[btnIndex].id);
    var mainDir = elem.innerHTML;
}

有效!!!宾果