2011-04-13 105 views
2

我的代碼有什麼問題。我如何將內心深處傳遞給我。我做到這一點,如果我運行功能editsubmit($selected, size),$選擇正確插入,但我變得attrfull而不是大小。javaScript jQuery函數,如何傳遞變量

function editsubmit(attr, attrfull) { 
    if (attr.length) { 
     attr.val().length ? $selectedinput.attr({ 
      attrfull: attr.val() 
     }) : $selectedinput.removeAttr(attrfull); 
    } 
} 

$ selected is a variable and attrfull i a string。當我運行像editsubmit($selected,'size')這樣的函數時,我是否需要在字符串周圍輸入兩個qoutes。

+0

只是一個想法,但試試這個:'ATTR(attrfull,attr.val( ))'。應該工作... – Khez 2011-04-13 21:31:50

+0

是的,圍繞字符串的單引號或雙引號。 – 2011-04-13 21:32:01

+0

我認爲你應該發佈創建你的editsubmit調用的代碼。它看起來像你使用PHP來生成JS調用......這很好......但我們需要看看你如何構建編輯提交調用。 – dmcnelis 2011-04-13 21:33:44

回答

2

嘗試

function editsubmit(attr, attrfull) { 
    if (attr.length) { 
     attr.val().length ? $selectedinput.attr(attrfull, attr.val()) : $selectedinput.removeAttr(attrfull); 
    } 
} 
+0

就是這樣。完善。 – Pinkie 2011-04-13 21:46:56

1

是的,你確實需要它是一個字符串(用雙引號),否則它會認爲你正在嘗試傳遞一個變量引用。

1

問題是這樣的: {attrfull:attr.val()}

我想你希望它是 {尺寸:(無論attr.val()是)}

所以:

function editsubmit(attr, attrfull) { 
    if (attr.length) { 
     if (attr.val().length) { 
      var myObj = {}; 
      myObj[attrfull] = attr.val(); 
      $selectedinput.attr(myObj); 
     } else { 
      $selectedinput.removeAttr(attrfull); 
     } 
    } 
}