One Prototype object only uses native method
change
var ele = $("some_id");
ele.innerHTML = "some-value";to native javascript
var ele = document.getElementById("some_id");
ele.innerHTML = "some-value";Checking null
| Prototype | jQuery |
|---|---|
$("some_id") == null |
jQuery("#some_id").length == 0 |
Creating new element
Prototype
new Element("div")jQuery
jQuery("<div>")Traversing > Filtering
| Prototype | jQuery |
|---|---|
$("radio_ele").checked |
jQuery("#radio_ele").is(":checked") |
$("some_id").visible() |
jQuery("#some_id").is(":visible") |
$("some_id") == target |
jQuery("#some_id").is(jQuery(target)) |
$("some_id").descendantOf(target) |
jQuer(target).has(jQuery("#some_id")).length |
Effects
| Prototype | jQuery |
|---|---|
| Basics | |
$("some_id").show()Element.show($("some_id")) |
jQuery("#some_id").show() |
$("some_id").hide()Element.hide($("some_id")) |
jQuery("#some_id").hide() |
$("some_id").toggle() |
jQuery("#some_id").toggle() |
Manipulation
| Prototype | jQuery |
|---|---|
| Class Attribute|css | |
$("some_id").addClassName("class-name") |
jQuery("#some_id").addClass("class-name") |
$("some_id").removeClassName("class-name") |
jQuery("#some_id").removeClass("class-name") |
$("some_id").hasClassName("class-name") |
jQuery("#some_id").hasClass("class-name") |
| DOM Insertion, Inside | |
$("some_id").innerHTML$("some_id").innerHTML = "some-content"$("some_id").update("some-content") |
jQuery("#some_id").html()jQuery("#some_id").html("some-content") |
$("some_id").appendChild(childElement) |
jQuery("#some_id").append(childElement) |
$("r_id").parentNode.insertBefore($("new_id"),$("r_id")) |
jQuery("#new_id").insertBefore(jQuery("#r_id")) |
| DOM Removal | |
$("some_id").remove() |
$("#some_id").remove() |
| General Attributes | |
$("some_id").value$("some_id").value = "some-value" |
jQuery("#some_id").val()jQuery("#some_id").val("some-value") |
$("some_id").disabled = false |
jQuery("#some_id").prop("disabled", false) |
| Style Properties | |
$("some_id").setStyle() |
$("#some_id").css() |
$("some_id").getWidth()$("some_id").getHeight()$("some_id")getDimensions() |
jQuery("#some_id").width()jQuery("#some_id").height() |
Element.cumulativeOffset($("some_id"))Position.cumulativeOffset($("some_id")); |
jQuery("#some_id").offset()jQuery("#some_id").position() |
Events
| Prototype | jQuery |
|---|---|
| Event Handler Attachment | |
Event.observe($("some_id"),"click",function(){})Event.stopObserving($("some_id"),"click",function(){}) |
jQuer("#some_id").on("click",function(){})jQuer("#some_id").unbind("click",function(){}) |
function(){}.bind(context) |
jQuery.proxy(function(){},context) |
$("some_id").fire('some-event') |
jQuery("#some_id").trigger('some-event') |
| Form events | |
$("some_id").focus() |
jQuery("#some_id").focus() |
Ajax > Low-Level Interface
prototype
new Ajax.Request(url,{
requestHeaders : {Accept: 'application/json'},
method : 'POST',
parameters : 'p1=' + p1.value + '&p2=' + p2.value,
onsuccess : handle_success_func(xhr){
...
xhr.responseText.evalJSON();
...
},
onFailure : handle_failure_func(xhr){},
onException : handle_exception_func(xhr){},
onComplete : handle_complete_func(){}
});jQuery
jQuery.ajax(url,{
accepts : {Accept: 'application/json'},
type : 'POST',
data : {p1 : p1.value, p2 : p2.value},
success : handle_success_func(data, textStatus, xhr){
...
jQuery.parseJSON(xhr.responseText)
...
},
error : handle_error_func(xhr){},
complete : handle_complete_func(){}
});Miscellaneous > Collection Manipulation | Traversing
| Prototype | jQuery |
|---|---|
$("some_id").each(function(e){}) |
jQuery("#some_id").each(function(index,e){}) |
Utilities
| Prototype | jQuery |
|---|---|
someText.isJSON() |
typeof jQuery.parseJSON(someText) === "object" |
prototype
$$("#enumerable").any(function(e){
//some judgment on e
});jQuery
// solution 1.Get the length of array which contains elements those satisfy a filter function
jQuery.grep(jQuery("#enumerable").toArray(), function(e){
//return e meets the condition ?
}).length;
// solution 2.Using each loop
var satisfy = false;
$("#enumerable").each(function(index,e){
if(/*e meets the condition*/){
satisfy = true;
return false; //break loop
}
});Methods of Prototype those jQuery doesn’t exist.
1.prototype
someStr.escapeHTML();using native javascript
someStr.replace("/&/g", "&").replace("/</g", "<").replace("/>/g", ">");2.prototype
[1, 7, -2, -4, 5].detect(function(n) { return n < 0; });navtive javascript
var arr = [1, 7, -2, -4, 5];
for(var i=0,l=arr.length; i<l; i++){
if(arr[i] < 0){
return arr[i];
}
}