将数据从div标签传递到javascript函数

时间:2013-08-11 10:40:48

标签: javascript html button

HTML

<li id="a1">
    <div><p>Some Text1!</p></div>
    <div><a href="#"></a>Some Text2!</div>  
    <div><input id="a1b" type="button" onClick="fun()"/></div>      
</li>

如何获取Some Text1!Some Text2!,即第一个和第二个div中的某些文字,并将其传递给第三个fun()中的div个函数?

3 个答案:

答案 0 :(得分:2)

为他们分配ID并使用document.getElementById访问

<li id="a1">
    <div><p id="text1">Some Text1!</p></div>
    <div id="text2"><a href="#"></a>Some Text2!</div>  
    <div><input id="a1b" type="button" onClick="fun(document.getElementById('text1').innerText,document.getElementById('text2').innerText)"/></div>      
</li>

您的fun功能:

function fun(text1,text2){

}

答案 1 :(得分:1)

为div添加Some Text1!Some Text2! idclass。这样你就可以做到以下几点:

通过ID:

<li id="a1">
    <div id="text1"><p>Some Text1!</p></div>
    <div id="text2"><a href="#"></a>Some Text2!</div>  
    <div><input id="a1b" type="button" onClick="fun()"/></div>
</li>

<script>
function fun()
{
      var text1 = document.getElementById("text1");
      var text2 = document.getElementById("text2");

      //do stuff with text1 and text2. E.g.: alert them:
      alert(text1.innerHTML);
      alert(text1.innerHTML);
}

通过课程来完成:

<li id="a1">
    <div class="identify"><p>Some Text1!</p></div>
    <div class="identify"><a href="#"></a>Some Text2!</div>  
    <div><input id="a1b" type="button" onClick="fun2('identify')"/></div>      
</li>

function fun2(matchClass)
{
    var elems = document.getElementsByTagName('*'), i;
    for (i in elems) {
        if((' ' + elems[i].className + ' ').indexOf(' ' + matchClass + ' ')
            > -1) 
    {
        //do stuff with the elements. E.g.: Alert them:
        alert(elems[i].innerHTML);
    }
}
</script>

参考:

https://stackoverflow.com/a/3808886/866930

答案 2 :(得分:1)

var divEle[] = document.getElementById("a1").childNodes;

for(var i=0; i<divEle.length;i++)
{
    console.log(divEle[i].firstChild.innerHTML);
}

这将在div元素中打印内部文本。

您可以定义如下功能:

divELe[2].setAttribute("onclick", "function("+divEle[0].firstChild.innerHTML+","+divEle[1].firstChild.innerHTML+")");