2015-01-17 2 views
0

То, что я хочу подход заключается в создании пользовательской функции, которая выглядит следующим образом:Как создать функциональные методы

access('h1').content('Hello World'); 

И это, как я пытался выполнить это:

function access(Tag) 
{ 
    var Element = document.getElementsByTagName(Tag)[0]; 

    this.content = function(Content) 
    { 
    if (Content !== undefined) 
      return Element.innerHTML = Content; 
    else return Element.innerHTML; 
    } 

    return Element; 
} 

Так что это Функция должна находиться на грани изменения Контента или просто вернуть его. К сожалению, это не так.

До сих пор я играл с ним около часа, чтобы переписать его и найти решение самостоятельно, но я не был успешным, и я также не знаю, как описать эту проблему для Google.

Как я могу это решить?

+0

просто возвращает 'this' или элемент выполняет операцию на, в конце. – vjdhama

+0

В логическом операторе есть проблема! == должно быть! = – ambes

+0

Даниэль, похоже, вы пришли из C# или другого подобного языка, а JS очень отличается. Вы должны прочитать [это] (https://github.com/getify/You-Dont-Know-JS)! – jrsala

ответ

2

Замените this на Element в вашем коде.

function access(Tag) 
 
    { 
 
     var Element = document.getElementsByTagName(Tag)[0]; 
 
    
 
     Element.content = function(Content) 
 
     { 
 
     if (Content !== undefined) 
 
       return Element.innerHTML = Content; 
 
     else return Element.innerHTML; 
 
     } 
 
    
 
     return Element; 
 
    } 
 
    
 
access('h1').content('Hello World');
<h1>Hello</h1>

Или попробовать что-то вроде этого.

function access(Tag) 
 
    { 
 
     var Element = document.getElementsByTagName(Tag)[0]; 
 
    
 
     var content = function(Content) 
 
     { 
 
     if (Content !== undefined) 
 
       return Element.innerHTML = Content; 
 
     else return Element.innerHTML; 
 
     } 
 
    
 
     return {content: content}; 
 
    } 
 
    
 
access('h1').content('Hello World');
<h1>Hello</h1>

+0

Спасибо. Второй способ работал для меня –

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