2011-03-15 113 views
1

我有我的ASP.NET masterPage.master形式,如果我點擊提交從ajax調用masterPage.master.cs文件(我有更新面板)中的某些方法。但我想用jQuery改進它。所以我有這樣的:jQuery使用ID創建新的div?

$('#submit').click(function() { 
      $.ajax({ 
       type: "POST", 
       url: '<% Response.Write("~"+Request.Path); %>', 
       beforeSend: function() { 
        $(document.createElement('div')).width($('#formBox').width()) 
        .height($('#formBox').height()) 
        .css({ backgroundImage: 'url(/Static/Img/bc_overlay.png)', position: 'absolute', left: 0, top: 0, margin: "5px", textAlign: "center", color: "#000", display: "none" }) 
        .append("<strong>Načítám</strong><br /><img src='Static/Img/ajax-loader.gif' width='33px' height='33px' alt='loading' />") 
        .fadeIn("slow") 
        .prependTo($('#formBox')); 
        $('#formBox').css('position', 'relative'); 
       }, 
       success: function() { 
       } 
      }); 
     }); 

所以,如果我點擊提交,新的div正在創造(有加載的文字和圖片,以及酷不透明覆蓋),但是我怎麼給這個div身份證嗎?因爲我需要在

success: function() { 
        } 

使用它,我需要清除該複選框,並在這裏寫一些文字(錯誤或成功)。

回答

4

當你創建它

$(document.createElement('div')).attr('id', 'theID')//rest of code 
+0

這就是我需要的,thx :-) – John 2011-03-15 17:12:04

+0

歡迎來到SO!如果這解決了您的問題,請將問題標記爲「已回答」,這樣可以幫助其他人。使用左側的大勾號標記:http://stackoverflow.com/faq#howtoask – JohnP 2011-03-15 17:17:21

0

我並沒有完全得到你所創建的設置只需設置屬性。

成功函數實際上是用3個參數調用的。

success : function(data, textStatus, jqXHR) { 
} 

您可以放心地忽略textStatus和jqXHR和只寫

success : function(data) { 
} 

數據元素是你從你的AJAX調用回結果。 您可以在該數據中搜索以獲取所需的ID。

另一種選擇是通過簡單的插入或追加調用從jQuery創建div,並在腳本中創建id。 (也許使用日期和時間是唯一的,或者只是獲得最高的ID並增加計數器) 然後,您可以通過調用jquery來加載要放入div的html。

3

我喜歡創造的元素是這樣的:

$('<div/>',{ 
     id: 'idhere', 
     css:{ 
      width: $('#formBox').width(), 
      height: $('#formBox').height() 
     } 
    }); 

等等

僅供參考 - 某些屬性有保留字/名稱(見MDN Reserved Words),所以如果你想指定類,你需要包裝的屬性名稱:

 $('<div/>',{ 
      id: 'idhere', 
      'class':'myclassname', 
      css:{ 
       width: $('#formBox').width(), 
       height: $('#formBox').height() 
      } 
     }); 

當然你也可以指定一個名稱這個新元素,並改變它,你走......

var div = $('<div/>',{ 
       id: 'idhere', 
       'class':'myclassname', 
       css:{ 
        width: $('#formBox').width(), 
        height: $('#formBox').height() 
       } 
      }); 

$(div).prop('name','saymyname'); 
+0

有關保留關鍵字的信息非常有幫助! – tyranitar 2015-02-13 14:32:52

0

所有的答案都是有效的。

另一種方式:

HTML

<div id='container'></div> 

JQuery的

$('#container').append("<div id=\"id\"></div>"); 

或者:

$('#container').append(createDiv('id', 'class')); 

var createDiv = function(newid, newclass) { 
    return $('<div/>', { 
       id: newid, 
       class: newclass, 
       css:{ 
       width: "100px", 
       height: "100px" 
       } 
      }); 
}