JavaScript API eBay - символ @ в имени члена объекта - PullRequest
3 голосов
/ 02 сентября 2010

Я использую eBay JavaScript Finding API. Элемент идентификатора валюты объекта findItemsAdvancedResponse определен как @currencyId. Поэтому я получаю это значение как:

function _cb_findItemsAdvanced(root) {
    var items = root.findItemsAdvancedResponse[0].searchResult[0].item || [];
    var html = [];
    if (items.length == 0) {
        html.push('No Results');
    }
    for (var i = 0; i < items.length; ++i) {
        var item     = items[i];
        var title    = item.title;
        var pic      = item.galleryURL;
        var viewitem = item.viewItemURL;
        var price = Number(item.sellingStatus[0].currentPrice[0].`__value__`).toFixed(2);
        var currency = ""
        var currency = item.sellingStatus[0].currentPrice[0].@currencyId;
        if (null != title && null != viewitem) {
            html.push('<div class="item-layout5"><table><tr><td><div style="width:102px;overflow:hidden;">');
            html.push('<a href="' + viewitem + '" target="_blank" rel="nofollow"><img src="' + pic + '" border= "" alt="' + title + '" /></a></div></td>');
            html.push('<td><span class="itemname"><a href="' + viewitem + '">' + title + '</a></span></td></tr>');
            html.push('<tr><td><img src="PTMFOG0000000064.gif" alt="" /></td><td><span class="buyprice">' + currency + ' &#36;' + price + '</span></td></tr></table></div>');
        }
    }
    document.getElementById("results").innerHTML = html.join("");

}  // End _cb_findItemsByKeywords() function

Это отлично работает для браузеров Firefox, но не для Google Chrome или IE (появляется ошибка компиляции).

Допустимо ли использование символа @ в имени члена в JavaScript? И какой обходной путь можно использовать, чтобы приведенный выше код работал во всех браузерах?

Спасибо

1 Ответ

6 голосов
/ 02 сентября 2010

В JavaScript, синтаксис

  foo.bar

эквивалентно

  foo['bar']

и последний работает, даже когда 'bar' не является допустимым именем идентификатора, как в этом случае.

...