Javascript + и строка возвращают значение из функции? - PullRequest
1 голос
/ 04 декабря 2010

Это глупая проблема с нубом, которая просто бесит меня ... извините.

  • Это работает: alert('hello');
  • Это работает: alert(getsomestring());
  • Это работает: alert('hello'+'goodbye')
  • Так почему это не работает: alert('hello'+getsomestring());

Я попробовал это без удачи:

alert('hello'+getsomestring(););
alert('hello'+getsomestring().toString(););

спасибо.

используя его следующим образом:

<script language="JavaScript">
function getQueryString() { 
    var assoc = new Array(); 
    var queryString = unescape(location.search.substring(1)); 
    var keyValues = queryString.split('&'); 
    for (var i in keyValues) { 
        var key = keyValues[i].split('='); 
        assoc[key[0]] = key[1]; 
    } 
    return assoc; 
} 



</script>

<script language="JavaScript">
alert('?h='+getQueryString()["search"];);
//localSearchHighlight('?h='+getQueryString()["search"]); 
);

</script>

Ответы [ 3 ]

3 голосов
/ 04 декабря 2010

Ваш код содержит синтаксические ошибки во втором блоке <script>. Следует читать:

alert('?h='+getQueryString()["search"]);
  • Внутри была ; функция вызова функции.
  • У вас была дополнительная строка с ); после вашего комментария.

Кроме этого, похоже, что он работает так, как вы этого хотите.

0 голосов
/ 04 декабря 2010

В JavaScript есть нет ассоциативных массивов.Только объекты сопоставляют ключи со значениями.

Замените var assoc = new Array(); на var assoc = new Object(); или стенографию var assoc = {};, тогда это будет работать.

Также есть лишнее ;в вашем оповещении:

alert('?h='+getQueryString()["search"];);
                                      ^ --------- SyntaxError: Unexpected token ;
0 голосов
/ 04 декабря 2010

Посмотрите в консоли ошибок вашего браузера;alert('hello'+getsomestring();) - синтаксическая ошибка из-за точки с запятой.Точки с запятой разделяют строки и не должны появляться в выражениях.Удалите его, и выражения будут работать (как вы набрали сначала: alert('hello'+getsomestring());).

...