2017-04-14 112 views
0

我有有4個LI元素這樣jQuery的越來越li元素的id

<ul class="pagination " id="loadMore"> 
     <li class="page-item"><a class="page-link prevR" href="#"><i class="fa fa-angle-left"></i></a></li> 
     <li class="page-item"><a class="page-link active" id="1" href="#">1</a></li> 
     <li class="page-item"><a class="page-link" id="2" href="#">2</a></li> 
     <li class="page-item"><a class="page-link" id="3" href="#">3</a></li> 
     <li class="page-item"><a class="page-link" id="4" href="#">4</a></li> 
     <li class="page-item"><a class="page-link nextR" href="#"><i class="fa fa-angle-right"></i></a></li> 
    </ul> 

,我試圖讓li元素的id作爲

$('#loadMore').on('click', function() { 
    var page = $('#page'); 
    var msg = $('#loadMoreMsg'); 
    alert($(this).attr('id')); 
    return false; 
}); 

一個UL列表,但它顯示未定義在警報中, 我已經嘗試了很多解決方案,但沒有任何工作,任何想法?

+1

做工精細,在我們的終端。並且你也有意想不到的問題:最後 –

+1

我不是那個jquery天才,但是你的查詢應該更像'$('#loadMore li')'? – Werner

+1

你添加了jquery庫嗎?因爲它工作正常 –

回答

2

您的li根本沒有id屬性。它是li裏面有id的鏈接。

爲了讓他們做象下面這樣: -

$('#loadMore li').on('click', function() { 
 
    alert($(this).find('a').attr('id')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="pagination " id="loadMore"> 
 
    <li class="page-item"><a class="page-link prevR" href="#" id="prev">Prev<i class="fa fa-angle-left"></i></a></li> 
 
    <li class="page-item"><a class="page-link active" id="1" href="#">1</a></li> 
 
    <li class="page-item"><a class="page-link" id="2" href="#">2</a></li> 
 
    <li class="page-item"><a class="page-link" id="3" href="#">3</a></li> 
 
    <li class="page-item"><a class="page-link" id="4" href="#">4</a></li> 
 
    <li class="page-item"><a class="page-link nextR" href="#" id="next">Next<i class="fa fa-angle-right"></i></a></li> 
 
</ul>

2

如果它根本不起作用,那麼我假設你正在動態追加列表。如果是這樣的話,那麼使用以下命令:

$(document).on('click', '#loadMore', function() { 
    var page = $('#page'); 
    var msg = $('#loadMoreMsg'); 
    alert($(this).attr('id')); 
    return false; 
}); 
+0

我已經這樣做了,但它顯示的是UI元素的ID不是li – user7597883

3

試試下面的代碼

$('ul.pagination li').on('click', function() { 
    var page = $('#page'); 
    var msg = $('#loadMoreMsg'); 
    alert($(this).find('a').attr('id')); 
    return false; 
}); 

這裏是工作的jsfiddle:http://jsfiddle.net/fqyhkd30/1/

+0

將偵聽器添加到'$( 'ul.pagination')'就足夠了,推薦使用,參考 - https://learn.jquery.com/events/event-delegation/。檢查這裏工作的解決方案http://stackoverflow.com/questions/43406671/jquery-getting-li-element-id/43406791#43406791 –

1

使用e.target獲得點擊的元素。

$('#loadMore').on('click', function (e) { 
    var id = $(e.target).attr('id'); 
    console.log(id); 
}); 

working fiddle

2

,我試圖讓li元素的id作爲沒有按「

你li元素沒有id attr。我想你想得到aid attr。

下面是你如何使用jQuery .delegate.on。我們將事件綁定到ul#loadMore

// .delegate 
 
$('#loadMore').delegate('a', 'click', function() { 
 
    
 
    var id = $(this).attr('id'); 
 
    var classL = $(this).attr('class'); 
 
    
 
    console.log(id, classL); 
 
}); 
 

 

 
// .on 
 
//$('#loadMore').on('click', 'a', function() { 
 
// 
 
// var id = $(this).attr('id'); 
 
// var classL = $(this).attr('class'); 
 
// 
 
// console.log(id, classL); 
 
//});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
 

 

 
<ul class="pagination " id="loadMore"> 
 
     <li class="page-item"><a class="page-link prevR" href="#"><i class="fa fa-angle-left"></i></a></li> 
 
     <li class="page-item"><a class="page-link active" id="1" href="#">1</a></li> 
 
     <li class="page-item"><a class="page-link" id="2" href="#">2</a></li> 
 
     <li class="page-item"><a class="page-link" id="3" href="#">3</a></li> 
 
     <li class="page-item"><a class="page-link" id="4" href="#">4</a></li> 
 
     <li class="page-item"><a class="page-link nextR" href="#"><i class="fa fa-angle-right"></i></a></li> 
 
    </ul>

1

您需要設置id像brlow所有li元素的屬性: -

<li class="page-item" id="value"></li>