<li> id or value
in onclick
イベント。ここに私の終了コードがあります。
<li onclick="getPaging(this.value)" id="1" value="1">1</li>
<li onclick="getPaging(this.value)" id="2" value="2">2</li>
ここにJavaScriptコードがあります
function getPaging(str)
{
$("#loading-content").load("dataSearch.php?"+str, hideLoader);
}
このようにしてみてください...
<script>
function getPaging(str) {
$("#loading-content").load("dataSearch.php?"+str, hideLoader);
}
</script>
<li onclick="getPaging(this.id)" id="1">1</li>
<li onclick="getPaging(this.id)" id="2">2</li>
または控えめに
$(function() {
$("li").on("click",function() {
showLoader();
$("#loading-content").load("dataSearch.php?"+this.id, hideLoader);
});
});
だけを使用して
<li id="1">1</li>
<li id="2">2</li>
_<li>
_ sにはvalue
がありません-フォーム入力のみにあります。実際、_<li>
_ sのHTMLにvalue
属性を含めることすら想定されていません。
代わりに_.innerHTML
_を使用できます。
_getPaging(this.innerHTML)
_
または、id
:
_getPaging(this.id);
_
ただし、JavaScriptコードからクリックハンドラーを追加し、それらをHTMLに含めない方が簡単です(より良い方法です)。すでにjQueryを使用しているので、これはHTMLを次のように変更することで簡単に行えます
_<li class="clickMe">1</li>
<li class="clickMe">2</li>
_
そして、次のJavaScriptを使用します。
_$(function () {
$('.clickMe').click(function () {
var str = $(this).text();
$('#loading-content').load('dataSearch.php?' + str, hideLoader);
});
});
_
これにより、すべての_<li class="clickMe">
_ sに同じクリックハンドラーが追加され、それぞれのonclick="getPaging(this.value)"
コードを複製する必要がなくなります。
HTML5データAPIを使用することを好みます。次のドキュメントを確認してください。
$('#some-list li').click(function() {
var textLoaded = 'Loading element with id='
+ $(this).data('id');
$('#loading-content').text(textLoaded);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id='some-list'>
<li data-id='1'>One </li>
<li data-id='2'>Two </li>
<!-- ... more li -->
<li data-id='n'>Other</li>
</ul>
<h1 id='loading-content'></h1>
これを試して:
<li onclick="getPaging(this.id)" id="1">1</li>
<li onclick="getPaging(this.id)" id="2">2</li>
function getPaging(str)
{
$("#loading-content").load("dataSearch.php?"+str, hideLoader);
}