2011-09-21 175 views
0

我是新来的JQuery &我试图做一些事情,我不知道我可以在JQuery做什么。JQuery:转换为和从textarea元素

  • 我可以使用JQuery(或者甚至是本地Javascript)函数获取HTML元素类型吗?如果是这样,该函数的名称是什么?
  • 我想更新/设置HTML元素类属性。你会建议我使用普通的旧setAttribute()为此还是应该使用JQuery函数?如果我应该使用JQuery函数,那么函数的名称是什么?
  • 是否有一个JavaScript函数返回一个HTML元素类?它是this.getAttribute(“class”);?

更有经验的JQuery的程序员:你会如何改善,试图再次返回更改元素的textarea的这个jQuery HTML代码(有些功能现在丢失):用于

<html> 
<head> 

    <script type="text/javascript" src="jquery-1.6.4.js"></script> 
    <script type="text/javascript"> 
    <!-- 
     var STATE = 0; 

     function Toggle() 
     { 
      if (STATE==1) { convertToUpdatable(); STATE = 0; } 
      else   { convertToStatic(); STATE = 1; } 
     } 

     function convertToUpdatable() 
     { 
      // Post: Convert all HTML elements (with the class 'updatable') to textarea HTML elements 
      //  and store their HTML element type in the class attribute 
      // EG: Before: <p class="updatable"/> Hello this is some text 1 </p> 
      //  After : <textarea class="updatable p"/> Hello this is some text 1 </textarea> 

      $(".updatable").each(function() 
       { 
        $(this).replaceWith("<textarea>"+$(this).text() +"</textarea>"); 
        // TODO store this elements type in class attribute 
        // The below is guessing that there are jquery functions getType() 
        $(this).setAttribute("class", $(this).getAttribute("class") + $(this).getType()); 
       }); 
     } 

     function convertToStatic() 
     { 
      // Post: Find all HTML elements (with the class 'updatable'), check to see if they are part of another class aswell 
      //  (which will be their original HTML element type) & convert the element back to that original HTML element type 

      $(".updatable").each(function() 
       { 
        // This uses javascript functions: how can I write this in JQuery 
        var type = this.getAttribute("class").replace("updatable","").replace(" ", ""); 

        if (type == "") { alert("Updatable element had no type defined in class attribute"); return; } 

        $(this).replaceWith(type +$(this).text() + type); 
        $(this).setAttribute("class", "updatable"); 
       }); 
     } 

    --> 
    </script> 
</head> 
<body> 

    <p class="updatable"/> Hello this is some text 1 </p> 
    <b class="updatable"/> Hello this is some text 2 </b> 
    <i class="updatable"/> Hello this is some text 3 </i> 

    <input id="MyButton" type="button" value="Click me!" onclick="Toggle();" /> 

</body> 
</html> 

回答

0

的Javascript:

your_element.className = 'some_class'; 
your_element.nodeName;