我需要从下拉列表中获取ID,但我的代码不能正常工作
$('.search-panel .dropdown-menu').find('a').click(function(e) {
alert(this.id);
e.preventDefault();
var param = $(this).attr("href").replace("#","");
var concept = $(this).text();
$('.search-panel span#search_concept').text(concept);
$('.input-group #search_param').val(param);
});
这是下拉代码
<ul class="dropdown-menu" role="menu">
<li id='1'><a href="#contains">น้อยมาก</a></li>
<li id='2'><a href="#its_equal">น้อย</a></li>
<li id='3'><a href="#greather_than">ปานกลาง </a></li>
<li id='4'><a href="#less_than">นิยม </a></li>
<li id='5'><a href="#all">นิยมมาก</a></li>
</ul>
答案 0 :(得分:6)
<a>
没有id
,只有<li>
。使用:
alert(this.parentNode.id);
此处this
引用<a>
而非<li>
。
答案 1 :(得分:1)
尝试gem install json
答案 2 :(得分:1)
第一个建议: - 标签不包含任何id,因此如果要获取id,它将返回null。 第二个建议: - 事件没有正确绑定。
试试这个
$(document).ready(function()
{
$(".dropdown-menu > li > a").click(function(e) {
alert(this.parentElement.id);
e.preventDefault();
var param = $(this).attr("href").replace("#","");;
var concept = $(this).text();
$('.search-panel span#search_concept').text(concept);
$('.input-group #search_param').val(param);
});
});
JSFiddle链接:http://jsfiddle.net/z2waxz81/1/
答案 3 :(得分:0)
您是在寻找id
代码的<li>
还是指代href
属性?您的代码似乎没有在任何地方使用id
。
<ul class="dropdown-menu" role="menu">
<li id='1'><a href="#contains">น้อยมาก</a></li>
<li id='2'><a href="#its_equal">น้อย</a></li>
<li id='3'><a href="#greather_than">ปานกลาง </a></li>
<li id='4'><a href="#less_than">นิยม </a></li>
<li id='5'><a href="#all">นิยมมาก</a></li>
</ul>
<script>
$('.search-panel .dropdown-menu').find('a').click(function(e) {
alert(this.id); // undefined -> this refers to the <a> tag but you don't seem to use an id anywhere?
e.preventDefault();
var $a = $(this);
var $li = $a.parent('li');
console.log($li.attr('id')); // this will log the parent `id`
var param = $a.attr('href').replace('#', ''); // get the href attribute from the <a> tag and remove the pound symbol
var concept = $a.text(); // get the text content of the <a> tag
$('.search-panel span#search_concept').text(concept);
$('.input-group #search_param').val(param);
});
</script>
答案 4 :(得分:0)
使用以下代码处理锚标记或li标记
$('div').each(function (index, value) {
$(this + ' > a').click(function(e) {
alert($(this).attr());
});// if you want to process the anchor tag
$(this + ' > li').click(function(e) {
alert($(this).attr());
});// if you want to process the li tag
});