我有一个像
这样的列表项<ul>
<li><img id="1" src="" /></li>
<li><img id="2" src="" /></li>
<li><img id="3" src="" /></li>
</ul>
<input type="button" >
我想点击任何列表来添加类,并使用jQuery从其他列表中删除。基本上只能在当时选择一个项目。
和按钮单击以显示所选列表项的ID
答案 0 :(得分:6)
这将执行您想要的操作并获取所选img
li
标记的ID
$('ul > li').click(function() {
$('ul > li').removeClass('active');
$(this).addClass('active');
});
$('input:button').click(function() {
alert($('li.active img')).attr('id'));
});
答案 1 :(得分:1)
$('li').click(function() { // should be better selector than just li
$('li').removeClass('active'); // remove all active classes
$(this).addClass('active'); // add active class to element clicked
});
$('input[type="button"]').click(function() {
alert($('li.active img').attr('id')); // get active id
});
修改强> 误读你的代码。添加了修复以获取图像标记的ID。
答案 2 :(得分:1)
在此处查看正常工作 http://jsfiddle.net/usmanhalalit/Jbh3q/1/
我稍微更改了你的标记以匹配标准(只添加了id
)并添加了一个红色背景以显示小提琴中的效果。
<强>标记:强>
<ul id="myul">
<li><img id="1" src="" /></li>
<li><img id="2" src="" /></li>
<li><img id="3" src="" /></li>
</ul>
<input id="btn" type="button" value="click" />
<强> JavaScript的:强>
$(function(){
$("#myul li").click(function(){
$("#myul li").removeClass('selected');
$("#myul li").css('background','none');
$(this).css('background','red');
$(this).addClass('selected');
});
$('#btn').click(function(){
alert( $('.selected img').attr('id') );
});
});
答案 3 :(得分:0)
// On li click
$("li").click(function() {
// Reset them
$("li").removeClass("yourClass");
// Add to the clicked one only
$(this).addClass("yourClass");
});
// On button click
$("input[type=\"button\"]").click(function() {
// Echo the id of selected li
alert($(".yourClass").attr("id"));
});