문제

나는 최근에 내 페이지에 약간의 JavaScript를 추가해 왔지만 고전적인 좌석 패션으로 모든 것을 배웠습니다. 내 페이지가 무언가를하기를 원할 때, 나는 구글을하고 원하는 결과를 얻을 때까지 실험합니다.

내 페이지에 활성화/비활성화, 숨기기, 쇼 등을 자주 사용하는 객체가 있지만 JavaScript에 대한 엄격한 소개를 놓친 적이 있습니다. 나는 Firebug Open이있는 개체를 클릭하여 대상에 대한 완전히 자격을 갖춘 이름을 볼 것으로 기대하지만 기쁨을 얻지 못했습니다. 나는 단지 form.button.value = "something"과 같은 것을 할 수 있어야하며 그 객체의 이름을 알아야합니다.

어떤 아이디어?

감사.

도움이 되었습니까?

해결책

JavaScript 코드를 실행하는 동안 현재 범위의 모든 로컬 변수가 있으므로 다음 코드가있는 경우 다음과 같습니다.

var myObject = New Object();
myObject.Person = New Object();
myObject.Person.Name = "Mark";
myObject.Person.Gender = "Male";
myObject.Name = "object1";

... 루트 객체는 myObject이며, 당신은 도트 표기법을 통해 후손 객체를 참조합니다.

그러나 브라우저에서 DOM의 구현 덕분에 window 객체를 통해 this 예어. 사실, 당신은 떠날 수 있습니다 this 간단한 상황에 대한 키워드, 즉 클로저를 사용하지 않을 때는 키워드입니다. 따라서 함수 이름 만 사용하여 최상위 수준에서 JavaScript 함수에 액세스 할 수 있습니다.

원하는 것처럼 들리는 것처럼 특정 요소에 액세스하려면 DOM을 배우고 제안한 구문을 사용하지 않아야합니다 (1990 년대 JavaScript와 같은 소리). 당신이 알아야 할 루트 요소는입니다 HTMLDocument 객체, document 재산. 구체적인 요소를 발견 할 수 있습니다 Id (아니다 Name) 사용하여 속성 getElementById 문서 요소의 방법. 물론 요소에 처음부터 고유 한 ID를 주면 도움이됩니다. 당신은 또한 재귀 적으로 사용할 수 있습니다 childNodes 원하는 것을 찾을 때까지 요소를 통해 수동으로 반복 할 수 있습니다. 또는 ID를 실제로 제공 할 수 없다면 getElementsByTagName DOM의 모든 요소에 연결된 방법.

예시:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
    <TITLE></TITLE>
    <META NAME="Generator" CONTENT="TextPad 4.6">
    <META NAME="Author" CONTENT="?">
    <META NAME="Keywords" CONTENT="?">
    <META NAME="Description" CONTENT="?">
    <SCRIPT LANGUAGE="Javascript">
        <!--

        function DoSummat()
        {
            var divInside = document.getElementById("Inside");
            divInside.textContent = "This text will appear inside.";
        }

        //-->
    </SCRIPT>
</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?">
<FORM>
    <INPUT TYPE="BUTTON" onclick="DoSummat();" NAME="MyButton" VALUE="Press Me">
</FORM>
<DIV ID="Outside">
    <DIV ID="Middle">
        <DIV ID="Inside"></DIV>
    </DIV>
</DIV>
</BODY>
</HTML>

다른 팁

요소는 일반적으로 The를 사용하여 식별됩니다 id 기인하다. 예시:

<input type="submit" id="saveButton" value="Save" />

당신은 사용할 수 있습니다 getElementById 요소에 대한 참조를 얻는 방법 :

var b = document.getElementById('saveButton');
b.value = 'Saving...';

당신이 준 이후 form.button.value="something" 예를 들어 HTML 객체를 제어하고 싶다고 생각합니다. ID를 할당 할 수 있습니다.

document.getElementById('my_form').button.value = 'something';

당신은 질문이 매우 모호하기 때문에 필요한 대답을 줄 수 없습니다.

Objects는 "활성화"/"비활성화"될 수 없으며 "이름"이 없습니다 (그들은 가질 수 있습니다. name 재산, 그것이 당신이 의미하는 바인 경우).

예를 들어, 주어진 :

var foo = {};

foo a 변하기 쉬운 그것은 객체 인 값을 가지고 있습니다. 객체는 변수가 아닙니다 ( "이름"이있는 객체). 주어진:

bar = foo; foo = null;

foo 지금입니다 null 그리고 Foo가 보유한 대상은 이제 다음과 같이 저장됩니다. bar.

당신은 그렇게 할 수 없습니다. 변수 이름은 변수와 관련이 없으며 함수간에 전달되지 않습니다. 당신이 할 수있는 최선은 문자열을 가져 와서 변수로 다시 해결하는 함수를 작성하는 것입니다.

function printVar(name) {
    console.log(name + ": " + window[name]);
}

물론, a 많은 이것에 대해 잘못된 것. 두 개의 로깅 통화를하는 것이 좋습니다.

console.log("foo");
console.log(foo);

또는 printf 스타일 구문 사용 :

console.log("foo: %o", foo);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top