首页 文章

从div到textarea的内容

提问于
浏览
2

我想将具有特定类的所有div的文本传输到同一页面上的textarea .

我怎样才能做到这一点?

例如:

< div class="test1" > Example1 < /div >
< div class="test2" > Example2 < /div >
< div class="test1" > Example3 < /div >
< div class="test3" > Example4 < /div >

我想转移div类test1的内容,并在textarea中显示“Example1”和“Example3” .

请帮忙! javascript或php

约翰

4 回答

  • 8

    使用jQuery可以很容易地做到这一点:

    var newTextVal = "";
    $('.text1').each(
        function()
        {
           newTextVal += $(this).text();
        }
    );
     $('textarea').val( newTextVal );
    

    上面将使用类“text1”遍历每个元素,并将其文本节点值附加到textarea中的文本 .

  • 2

    我建议使用div的“id”属性而不是class . 基本上,您需要编写一个使用GetElementById()或GetElementByObject()的JavaScript函数 .

    然后定义一个调用该函数的按钮,传递div的id和textarea的id . 最后,将textarea对象的值设置为div对象的值 .

    EDIT: 这是功能 .

    <script type="text/javascript">
    function copyValues(idFrom, idTo) {
        var objFrom = document.getElementById(idFrom);
        var objTo = document.getElementById(idTo);
    
        objTo.value = objFrom.value
    }
    </script>
    

    在您希望它触发的事件上:

    copyValues("div1", "textarea1");
    copyValues("div2", "textarea2");
    copyValues("div3", "textarea3");
    
  • 0

    你可以通过使用jquery来做到这一点

    $(document).ready(function(){
      $("#text").keyup(function(){
        var text = $("#text").val();
        $(".test").html(text);
      })
    })
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="test"></div>
    <textarea id="text"></textarea>
    
  • 0

    如果你正在寻找纯粹的javascript,这会有用 - 虽然这样的东西很容易在像jQuery这样的框架中处理:

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Untitled Page</title>
        <script type="text/javascript">
    
            function CopyDivsToTextArea()
            {
                var divs = document.getElementsByTagName("div");
                var textToTransfer = "";
                var pattern = new RegExp("test1");
    
               for(var i=0;i<divs.length;i++)
                {
                if(pattern.test(divs[i].className))
                    {
                       textToTransfer += (divs[i].innerText || divs[i].textContent);
                    }
                 }
             document.getElementById("ta").value = textToTransfer;
            }
    
        </script>
    </head>
    <body>
    <div class="test1" > Example1 </div >
    <div class="test2" > Example2 </div >
    <div class="test1" > Example3 </div >
    <div class="test3" > Example4 </div >
    
    <textarea id="ta" cols="50" rows="20"></textarea>
    <input type="button" id="btn" value="Button" onclick="CopyDivsToTextArea();" /> </body> </html>

相关问题