JS到jQuery最充分

时间:2010-02-24 22:33:11

标签: javascript jquery

我有这个:

function createObject() {  
  var request_type;
  var browser = navigator.appName; 
  if(browser == "Microsoft Internet Explorer"){
    request_type = new ActiveXObject("Microsoft.XMLHTTP");
  } else {
    request_type = new XMLHttpRequest();
  }
  return request_type;
}

var http = createObject();
var nocache = 0;

function insert() {
  document.getElementById('insert_response').innerHTML = "To Sek .. "
  var bID= encodeURI(document.getElementById('bID').value);
  var kommentar= encodeURI(document.getElementById('kommentar').value);
  nocache = Math.random();
  http.open('get', 'insert.php?bID='+bID+'&kommentar=' +kommentar+'&nocache = '+nocache);
  http.onreadystatechange = insertReply;
  http.send(null);
}

function insertReply() {
  if(http.readyState == 4){
  var response = http.responseText;  
  document.getElementById('insert_response').innerHTML = response;
  if ($("#box[value=1]").length > 0) {  window.parent.showMessage("Video Is OK"); }
}
}

我希望“缩短”代码,并使其充分利用jQuery。例如,我听说过serialize();而不是使用http.open等..但在这种情况下我应该如何使用它?

我是否真的需要createobject()中的所有内容来制作http?

3 个答案:

答案 0 :(得分:0)

通过调用get method in jQuery可以清除大部分内容。

首先,它会为您抽象出特定于浏览器的详细信息,因此您无需检查如何获取XMLHttpRequest。

然后,您可以使用jQuery通过选择器获取元素。要按ID选择任何元素,您将使用以下语法:

$("#<id>")

主题标签表示您要选择具有指定ID的元素。从那里你可以使用一些general attribute functions来获取特定元素中的值。

最后,您可以使用Javascript's ability to generate closures创建并传递一个作为get函数的回调,该函数在调用完成时执行。然后,您将使用相同的选择器常规属性函数在调用完成时更改客户端的值。

答案 1 :(得分:0)

未经测试,但我很确定这就是您所需要的:

function onInsertComplete(data,textstatus){
    $("#insert_response").html(data);
}

function doInsert(){
    $("#insert_response").html("To Sek...");
    var nocache = '0';
    var data = { bID : $("#bID").val(), kommentar: $("#kommentar").val(), nocache: nocache };
    $.get('insert.php', data, onInsertComplete);
    if ($("#box[value=1]").length > 0) {  
        window.parent.showMessage("Video Is OK"); 
    }
}

答案 2 :(得分:0)

这条线上的东西?

http://api.jquery.com/load/

$('#result').load('ajax/test.html', function() {
  alert('Load was performed.');
});