在jQuery中使用什么来代替innerHTML来获取值


What to use instead of innerHTML in jQuery to get value?

<table border="0" cellpadding="10" cellspacing="1" id="edit">
        <tr>
        <div class="input-label">
        <td>Name:</td>
        </div>
        <td><div class="input-tbox"><input type="text" name="Myname" id="names" contenteditable="true" onblur="saveToDatabse(this,'name','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $name; ?>"/></div></td>
        </tr>
         <tr>
        <td>Username:</td>
        <td><div class="input-tbox"><input type="text" name="myuser" id="user" contenteditable="true" onblur="saveToDatabse(this,'userName','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $username; ?>" /></div></td>
        </tr>
         <tr>
        <td>Email:</td>
        <td><div class="input-tbox"><input type="text" name="mail" id="email" contenteditable="true" onblur="saveToDatabse(this,'email','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $usermail; ?>" /></div></td>
        </tr>
</table>

我在onblur事件中具有saveToDatabase()功能。这是我的功能,

function saveToDatabse(editableObj,column,id){
    $(editableObj).css("background","#FFF url('../images/loaderIcon.gif')no-repeat right");
    $.ajax({
        url:"update.php",
        type:"POST",
        data:'column='+column+'&editval='+editableObj.innerHTML+'&id='+id,
        cache: false,        
        sucsess:function(data){
            $(editableObj).css("background","#FDFDFD");
        }
    });
}

当我更新它时,它设置了一个空白值。我认为是因为innerHTML的使用。我知道innerHTML不适合jquery。那么,我可以用什么来从saveToDatabse()函数的这个对象中获得值呢?

 $.ajax({
        url:"update.php",
        type:"POST",
        data:({'column':column,'editval':editableObj.value,'id':id}),
        cache: false,        
        sucsess:function(data){
            $(editableObj).css("background","#FDFDFD");
        },
        error:function(data){
            alert(data); /*this will help to to find the error*/
        }
    });
<table border="0" cellpadding="10" cellspacing="1" id="edit">
        <tr>
        <div class="input-label">
        <td>Name:</td>
        </div>
        <td><div class="input-tbox"><input type="text" name="Myname" id="names" contenteditable="true" onblur="saveToDatabse(this,'name','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $name; ?>"/></div></td>
        </tr>
         <tr>
        <td>Username:</td>
        <td><div class="input-tbox"><input type="text" name="myuser" id="user" contenteditable="true" onblur="saveToDatabse(this,'userName','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $username; ?>" /></div></td>
        </tr>
         <tr>
        <td>Email:</td>
        <td><div class="input-tbox"><input type="text" name="mail" id="email" contenteditable="true" onblur="saveToDatabse(this,'email','<?php echo $id;?>')" onclick="showEdit(this);" value="<?php echo $usermail; ?>" /></div></td>
        </tr>
</table>

Jquery代码如果你想要文本框中的值,你应该使用value而不是innerHTML

function saveToDatabse(editableObj,column,id){
    $(editableObj).css("background","#FFF url('../images/loaderIcon.gif')no-repeat right");
    $.ajax({
        url:"update.php",
        type:"POST",
        data:'column='+column+'&editval='+editableObj.value+'&id='+id,
        cache: false,        
        sucsess:function(data){
            $(editableObj).css("background","#FDFDFD");
        }
    });
}