2013-06-24 37 views
0

我一直無法使基於jQuery的POST請求工作。jQuery AJAX POST請求引發未捕獲的SyntaxError:意外的標識符

第20行拋出這個錯誤:

Uncaught SyntaxError: Unexpected identifier .

的按鈕用PHP生成如下:

<a id="df-save-218281" 
    class="button js-saved-search" 
    href="/realestate/addsearch/?s=-List+Price&amp;Town_State=Burlington+VT&amp;Description%5Blikeany%5D=five+sisters&amp;State=VT&amp;Status%5Bany%5D=ACT%2CUAG%2CPCG%2CPEN%2CRNT%2CA%2CK%2CL%2CO%2CR%2CT" 
    data-alt-href="/realestate/removesearch/218281/" 
    data-alt-text="Delete Search" 
    data-toggle-class="remove"> 
    <span>Save Your Search</span> 
</a> 

和JavaScript是在這裏:

$(function() { 
    $('.js-saved-search').click(function(event) { 
    console.log('clicked'); 
    event.preventDefault(); 

    var jsSavedSearch = $(this), 
     queryString = decodeURIComponent(jsSavedSearch.attr('href')), 
     url = jsSavedSearch.attr('href'), 
     name = jsSavedSearch.text(); 
     id = jsSavedSearch.attr('id').replace(/\D/g, ''); 

     console.log(id); 
     console.log(name); 
     console.log(queryString); 

    var posting = $.post(queryString, { SearchName: name }); 

    posting.done(function(data) { 
     console.log(data); 
     console.log(jsSavedSearch.attr('data-alt-text').replace(/\/\d+\//g, data)); 
     console.log(jsSavedSearch.text()); 
     console.log(jsSavedSearch.attr('data-alt-href')); 
     console.log(jsSavedSearch.attr('href')); 

     newText = jsSavedSearch.attr('data-alt-text'); 
     newAltText = jsSavedSearch.text(); 
     newHref = jsSavedSearch.attr('data-alt-href'); 
     newAltHref = jsSavedSearch.attr('href'); 

     console.log(newAltText); 
     console.log(newText); 
     console.log(newAltHref); 
     console.log(newHref); 

     jsSavedSearch.attr('data-alt-text', newAltText); 
     jsSavedSearch.text(newText); 
     jsSavedSearch.attr('data-alt-href', newAltHref); 
     jsSavedSearch.attr('href', newHref); 

    }); 
    }) 
}); 

編輯: 問題似乎是與這個正則表達式。我無法弄清楚如何在JavaScript正則表達式中轉義值。

newText = jsSavedSearch.attr('data-alt-text').replace(/\/\d+/\/g, data)

+0

是什麼數據? –

回答

2

看起來你在定義變量時發生的,; ..

var jsSavedSearch = $(this), 
    queryString = decodeURIComponent(jsSavedSearch.attr('href')), 
    url = jsSavedSearch.attr('href'), 
    name = jsSavedSearch.text(); 
    id = jsSavedSearch.attr('id').replace(/\D/g, ''); 

應該

var jsSavedSearch = $(this), 
    queryString = decodeURIComponent(jsSavedSearch.attr('href')), 
    url = jsSavedSearch.attr('href'), 
    name = jsSavedSearch.text(), 
         //-----^---here 
    id = jsSavedSearch.attr('id').replace(/\D/g, ''); 
+1

雖然這可能不是問題,這就好像在說'var a = 0,b = 1; c = 3;'是無效的,但它是 - 它將局部範圍'a'和'b'並使'c'全局[FIDDLE] –

+0

bipen - 謝謝對於幫助,不幸的是,這並沒有解決問題。 – acarbonaro

+0

實際上你的線路號碼也是20點...檢查你的控制檯.. – bipen

相關問題