2013-01-15 52 views
1

如何将jquery库转换为纯javascript?在纯javascript中转换jquery

function appendText(){ 
    var text = $("#text").val(); 

    if ($("#text").val()){ 
    var textArea = "<div class='divex'> <li style='list-style-type:none;' id='t"+counter+"'>"+text+"</li><button id='b"+ 
    counter+"'name='t"+counter+"' >edit</button></div>";  
    $("#text").val(); 
    $("#addedText").after(textArea); 
    $("#t"+counter).clear;  
    $("#t"+counter).attr('readonly','readonly'); 
    $("#b"+counter).bind('click',makeAreaEditable); 
    $("#text").val(''); 
    $('.divex').sortable();             
    counter++; 
    } 
    else{ 
    } 
}; 

的开始我想是这样的:

var counter=0; 
function appendText(){ 
    var text = document.getElementById('text'); 

    if (document.getElementById('text').value){ 
    var textArea = "<div class='divex'> <li style='list-style-type:none;'id='t"+counter+"'>"+text+"</li><button id='b"+ 
    counter+"'name='t"+counter+"' >edit</button> </div>"; 

    var texty = document.getElementById('addedText').appendChild(textArea); 

,但我有一些问题。

我觉得我没atribue文本列表corectly ..这里是 我到目前为止有:

var counter=0; 
    function appendText(){ 

     var text = document.getElementById('text').value; 

     if (document.getElementById('text').value){ 
     var div = document.createElement('div'); 
     div.class = 'divex'; 
     var li = document.createElement('li'); 

     div.appendChild(li); 
     document.createTextNode(text); 

     var bigdiv = document.getElementById('addedText'); 
     bigdiv.appendChild(text); 

     counter++; 
     } 
     else{ 
     } 
    }; 
+5

'但我有一些问题。“ - 我也是。你能更具体地了解你遇到的问题吗? –

+0

尝试更新您的问题,并指定您尝试了什么,什么没有工作。这将有助于我们更好地理解您的问题。 – Tom

+2

有关重构工作代码的问题应该发布到http://codereview.stackexchange.com –

回答

0

.appendChild()需要一个DOM元素,而不是HTML字符串就像你在textarea变量中一样。

你必须使用document.createElement第一,是这样的:

var div = document.createElement('div'); 
div.class = 'divex'; 
var li = document.createElement('li'); 
div.appendChild(li); 
// etc. 

然后使用document.createTextNode()创建li - 元素中的文本。等等..

+0

谢谢我马上回复你 – emcee22

+0

我已经uppgraded我的代码...我做错了什么? – emcee22

+1

您必须保存'createTextNode'的返回值并将其传递给'appendChild'调用。此外,为什么你将'text'传递给最后一个'bigDiv.appendChild'?它不应该是新生成的DOM树吗? –