2014-10-21 7 views
1

DOM 요소 (텍스트 필드 또는 드롭 다운 상자)의 ID와 val(), text() 같은 값을 얻는 방법과 같은 정보가있는 JSON 파일이 있습니다.변수를 속성으로 사용할 수 있습니까?

{ 
"textfield":"text()", 
"textfield":"val()" 
} 

저는 json 데이터를 얻기 위해 ajax 함수를 사용합니다 ...이 부분은 괜찮습니다. I'am이 할 traying 무엇

는 propertys

$.each(jsonData, function(key, getValue){ 
    console.log($('#myTextfieldID').getValue); 
    }); 

또는

$.each(jsonData, function(key, val){ 
    console.log($('#myTextfieldID')[getValue]); 
    }); 

하지만 반환 값으로 JSON 객체를 사용하기 위해 SHURE의 I에 대한

에 allways "정의"입니다 이렇게 할 수 있습니다.

switch (getValue) 
    { 
    case 'text()': 
     console.log($('#myTextfieldID').text()); 
    break; 
    case 'val()': 
     console.log($('#myTextfieldID').val()); 
    break; 
    } 

어떤 아이디어가 있습니까?

{ 
    "textfield":"text", 
    "textfield":"val" 
} 

그리고 : : 함수는 자바 스크립트 객체로 변수를 통해 참조되기 때문에 도움

에 대한 들으
+3

객체는 동일한 키를 가진 두 속성을 가질 수 없습니다. 이것은 단순화 문제가 아니라 그것을 지적하자. – charlietfl

답변

0

, 당신은 같이 갈 수있는 모든

$.each(jsonData, function(key, val){ 
    console.log($('#myTextfieldID')[getValue]()); 
}); 
0

첫째 - jQuery를 객체가 반환이 있다면 -을 "text()"속성이 없으므로 "정의되지 않음"이 발생합니다.

자바 스크립트의 Methonds는 Function 유형의 개체 속성 일뿐입니다.

그래서 귀하의 경우에는,

jsonData = { 
    "textfield":"text", 
    "textfield":"val", 
    "textfield":"fooBar" 
}; 

속성의 이름을 저장하고 그 속성을 호출 그것은 '기능'인 경우 또는 기타

$.each(jsonData, function(key, getValue){ 
    var d = $('#myTextfieldID')[getValue]; 
    console.log(d instanceof Function ? d() : d); 
}); 
0

이 그것을 얻을 값을 반환해야합니다 변수가있는 attr은 무엇인가? 같은 ...

{ 
    "textfield":"text", 
    "textfield":"val", 
    "textfield":"attr, myAttr", 
} 

및 ...

$.each(jsonData, function(key, val){ 
    var parts = val.split(","); 
    console.log($('#myTextfieldID')[parts[0]](parts[1])); 
}); 

...하지만 이것은 단지 특별한 경우 "myAttr"을 위해 노력하고, 다른 사람을 위해 내가 "jQuery.fn.jQuery를 얻을. init [1] ". 방법이 함수에 빈 변수를 추가 할 수 없습니까?

이 방법이 작동 ...

$.each(jsonData, function(key, val){ 
    var parts = val.split(","); 
    if (parts.length > 1) 
     console.log($('#myTextfieldID')[parts[0]](parts[1])); 
    else 
     console.log($('#myTextfieldID')[parts[0]]()); 
}); 

일부 HTML 예를

<input type="text" name="appName" value="myApp1" id="appNameID1" /> 
<input type="text" name="appName" value="myApp2" id="appNameID2" /> 
<input type="text" name="appName" value="myApp3" id="appNameID3" myAttr="someVal"/> 
관련 문제