0

jQuery ベースの POST リクエストを機能させるのに問題がありました。

20 行目で次のエラーがスローされます。

キャッチされていない SyntaxError: 予期しない識別子です。

ボタンは 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)

4

1 に答える 1