2014-10-14 2 views
0

이것은 어리석은 질문처럼 보일 수 있습니다. 짧은 배경은; 나는 OCD로 임상 적으로 진단 받았기 때문에, 나는 나의 코드의 포맷과 깔끔함에 관해서 매우 특별하다. 그래서 나는 사전에 사과한다. 이것은 내 질문에 나를 인도한다 :Element 객체를 인스턴스화하고 동시에 속성을 정의 할 수 있습니까?

자바 스크립트에서 객체를 인스턴스화하고 블록의 속성을 정의하는 방법이 있습니까? 내 목표는 당신이

는 여기에 몇 가지 의사/형식의 JSON 개체/문자열을 볼 줄 방법을 다소 유사 할 수 있습니다

var preElement = document.createElement('pre') 
    .className = "nodeResults"; 
    .innerHTML = formattedResponse; 
    .style = "blahblah"; 
    .anymoreAttributes = "stuff"; 

하찮은에게, 나는 알고있다. 나는 방금 기능적 코드를 작성하는 대신 이것을 연구하는 데 30 분을 보냈다. OCD의 몰락. 그래서 제발 나를 도와주세요. 이게 가능합니까 아니면 아니오입니까? 당신이 형식의이 종류를 처리하거나, jQuery 라이브러리를 사용하는 클래스 래퍼를 작성하지 않는 한 감사

, WastingTehTime

+0

가능한, 그래,하지만 그런 : 여기

내가 방금 만든 바닐라 구현의 몇 가지 예제 코드입니다. DOM 함수는 요소를 반환하지 않습니다. 너는 너의 도우미를 만들어야 해. – elclanrs

+0

상자는 기본적으로 제공되지 않습니다. 요소 유형에 대한 문자열과 해당 속성에 대한 객체를받는 함수를 작성하기 만하면됩니다. 'create ("pre", "className :"nodeResults ", ...}); ' –

+0

... 또는 객체 형식으로 전체 구조를 허용하는 객체를 만듭니다. 그게 내가하는 일이야. 내가 사용하는 형식은 JSONML과 비슷합니다. '[ "div", {id : "foo"}, [ "span", {className : "bar"}]]' –

답변

1

이것은 행할 수 없습니다. 의 jQuery 예 :

var preElement = $(document.createElement('pre')) 
    .addClass("nodeResult") 
    .html(formattedResponse) 
    .css(jsonFormattedCSS) 

jsFiddle 예 : http://jsfiddle.net/3h5kfv2j/

이는 자바 스크립트 너무 바닐라 구현 될 수 있지만, 당신이 또는 코드 스스로를 수행하는 라이브러리를 찾을 필요가있을 것이다. http://jsfiddle.net/4n4w3uqr/

+1

NICE! 그 대답. jQuery를 이미 사용하고 있으므로이 기능이 훌륭합니다! –