为了简单起见,我有以下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> </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
${btnVal}
${element.first.get(0)}
如何获得${element.first.get(0)}
编辑:我想要点击按钮的div
的确切值,而不是整个DOM。
答案 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;
}
有效!!!宾果