2009-11-02 146 views
0

爲什麼下面的代碼會發出異常?JQuery代碼不能正常工作

function SetText(index, text) { 
      try { 
       $('p')[index].innerHTML = text; 
      } 
      catch (ex) { 
       alert(ex); 
      } 
     } 

     $(document).ready(SetText(2, 'Damn')); 

的例外是:

TypeError: $('p')[index] is undefined 

這是我的代碼文件:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectingFromAnElementGroup.aspx.cs" Inherits="JQuery_Intellisence_Test.SelectingFromAnElementGroup" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title></title> 
    <script src="Javascript/jquery-1.3.2.js" type="text/javascript"> 
     /// <reference path="jquery-1.3.2-vsdoc.js" /> 
    </script> 
    <script type="text/javascript"> 
     function SetText(index, text) { 
      try { 
       $('p')[index].innerHTML = text; 
      } 
      catch (ex) { 
       alert(ex); 
      } 
     } 

     $(document).ready(SetText(2, 'Damn')); 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <div> 
      <p>This is 1st Paragraph</p> 
      <p>This is 2nd Paragraph</p> 
      <p>This is 3rd Paragraph</p> 
      <p>This is 4th Paragraph</p> 
      <p>This is 5th Paragraph</p> 
     </div> 
    </form> 
</body> 
</html> 
+0

檢查快,讓你的HTML代碼woth 'P' – 2009-11-02 10:27:59

回答

3

試一下,並告訴我們發生了什麼:

$(document).ready(function() { SetText(2, 'Damn') }); 

我想你的函數在DOM準備好之前調用。

+0

呀!那是對的!這是工作。 – anonymous 2009-11-02 10:29:13

0
<html> 
<head> 
    <script src="http://www.google.com/jsapi"></script> 
    <script type="text/javascript"> 
     google.load("jquery", "1.3.2"); 
     function SetText(index, text) { 
      try { 
       if (typeof $('p')[index] !='indefined') $('p')[index].innerHTML = text; 
      } catch (ex) { 
       alert(ex); 
      } 
     } 
</script> 
</head> 
<body> 
    <p>Paragraph 0</p> 
    <p>Paragraph 1</p> 
    <p>Paragraph 2</p> 
    <script type="text/javascript"> 
     $(function() {SetText(2, 'Damn');}); 
    </script> 
</body> 
</html> 

你的代碼需要通過

if (typeof $('p')[index] !='indefined')