2014-01-19 2 views
-1

Почему эти две переменные разные? Я читал documentation, и я до сих пор не понимаю его полностью.Описание объектов JavaScript

переменной 1:

<textarea id="code"> 
    //...[buncha code here] 
</textarea> 
var example = document.querySelector('#code'); 

переменной 2:

вар пример = "[Buncha код здесь]";

Замените в скобках любым кодом, который вы желаете. При обращении к первой переменной, вы должны использовать example.value вместо просто example или возвращает [object HTMLTextAreaElement]. Это потому, что это не строка?

Как вручную установить переменную (например, в примере Variable 2), чтобы содержать код, который может быть оценен, например. с eval(example.value)?

+2

Независимо от того, что вы пытаетесь сделать, 'eval()' не так. –

+0

Использование eval() было всего лишь примером. Я не использую его. Я просто хочу знать, как правильно установить переменную в соответствии с тем, что вытаскивается через document.querySelector ('# code'); – daveycroqet

+0

@ daveycroqet: Старайтесь не использовать w3schools во многом, поскольку они хорошо известны тем, что не обновлялись и не придерживались стандартов W3C в прошлом. Из-за этого их сертификаты означают очень мало. См. [** w3fools **] (http://w3fools.com) :) Помимо официальной документации W3C, которую трудно прочитать, официальная Mozilla Developer Network [** MDN - JavaScript Documentation **] (https : //developer.mozilla.org/en-US/docs/Web/JavaScript). Также прочитайте документы, соответствующие вашему коду [** document.querySelector **] (https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector) – Nope

ответ

0

В вашем Variable 2 пример, который вы не используете eval(example.value), потому что это строка. Вы бы просто использовали eval(example). В вашем примере Variable 1 вам понадобится example.value, потому что в противном случае это был бы элемент DOM. В вашем переменной 1 например example.id будет струнный code, где example.value является value attrubute, что в случае <textarea>, действительно выглядит innerHTML, но с момента его входа формы вы используете .value.

1

В примере с переменной 1 это объект, элемент HTML.

В примере с переменной 2 это строка.

0
var example = document.querySelector('#code').value; 

document.querySelector ('# code') возвращает DOMElement. Вам просто нужно присвоить значение свойства этого элемента вашей переменной вместо целого элемента.

Смежные вопросы