2016-08-15 10 views
0

enter image description here私はボタンをクリックしたときに実行するスクリプトのこのビットを持っているアヤックス

によって変更されたHTML要素の現在の内容を取得する必要があります。それはクラス「.product-SKU」と、この場合には(ページ上の要素を読み出し、等、データベースを照会PHPスクリプトにオフのinnerTextを送信し、コンテンツのブロックを返す。

<script type="text/javascript"> 
jQuery(function($){ 
    $(document).ready(function(){ 
     $("#btnFindStore").click(function(){ 
      sku_no = $(".product-sku").get(0).innerText; 
      $.post( 
       'DealerLinks.php', 
       { sku: sku_no }, 
       function(data){ $('#output').replaceWith(data); }); 
      $('#altStores').modal('show'); 
     }); 
    });   
}); 

.product-sku要素(画像の下部に近い赤い形)に表示されているデータがページ上の他の要素(サイズオプション)によって変更されていますが、ボタン「B」がクリックされたときに.innerTextは、初めて.click()が実行されたときに読み取られた値から変更されません。

つまり、ブラウザに表示されるテキストが変更されても、.innerTextの値は更新されず、関数がトリガされたときに変数の値として返されません。正しい値が返されますが、値が返されてモーダルポップオーバーが閉じられた後、.click()は、.click()が最初に起動されたときから値を返します。

"innerText()"の代わりに.click()が実行された場合、.product-sku要素に表示される "実際の"現在の値を取得するにはどうすればよいですか?値?

代わり

答えて

0

私は、なぜ/どのようにわからないんだけど、次のようにスクリプトを変更すると、トリックを行っているようです。 sku_no = $(".product-sku").html();が、問題を軽減していないようでしたので、やって:

<script type="text/javascript"> 
jQuery(function($){ 
    $("#btnFindStore").click(function(event){ 
     event.preventDefault(); 
     sku_no = $(".product-sku").html(); 
     $.post('dlinks.php', { sku: sku_no }, function(data){ 
      $('#output').html(data); 
     }); 
     $('#altStores').modal('show'); 
    }); 
}); 
</script> 

は、私は最初のページからSKU値を取得し、割り当てラインを変更してみました。

私はこれを見つけました:モーダルポップアップの内容を設定すると、$('#output').html(data);ではなく$('#output').replaceWith(data);を使用したときの動作が異なります。スクリプトたら.replaceWith();.html();に関する詳細な情報を提供しlinkを初めて走った

はここで、それはモーダルコンテンツHTMLで、IDの#outputで要素を交換していて、その後のクリックで、への#outputはありませんでした置き換える...そうしなかった。

すぐに機能します。これが他の人に役立つことを願っています

1

バインドjQueryの方法:

sku_no = $(".product-sku").get(0).text(); 
+0

_ ".... get(0).textは関数ではありません" _ –

+0

私は 'sku_no = $("。product-sku ")を使用するとtext();'私は得るエラーはありませんが、私は元の問題がまだあります。 –

関連する問題