次のJSコードを複数の場所で使用しています。
$(this).attr("name")
私はそれをdiffの場所で次のように使用します。
var currentKey = $(this).attr("name");
currentKeyVal = retrievedUserDataObj[$(this).attr("name")];
currentKeyVal = UserDataObj[$(this).attr("name")];
今私の質問は、上記のコードが繰り返されないように、どういうわけかそれをグローバル変数にすることが可能ですか?
$(this)のせいでgloablにすることができるかどうかわかりませんか?
実際の/最適化されたコードを編集します。
function setFormFieldValues()
{
var currentKey,currentKeyVal;
if (supports_html5_storage())
{
var retrievedUserDataObj = JSON.parse(localStorage.getItem('UserDataObj'));
localStorageSupport = true;
}
$(".formFieldUserData").each(function(){
var $this = $(this);
currentKey = $this.attr("name");
currentKeyVal = UserDataObj[currentKey]; //Set with default values initially
if (localStorageSupport)
{
if(retrievedUserDataObj) //called when there are some values in localStorage
currentKeyVal = retrievedUserDataObj[currentKey];
}
else
{
if ($this.val() != "")
currentKeyVal = $this.val();
}
$("#"+currentKey).val(currentKeyVal); //Input text box
$("#"+currentKey+"Txt").html(currentKeyVal); // Form label
})
}