我使用Jquery时遇到了问题。
这是我的html标记:
<li><a class="" value="short" tool="car" type="monov"> text </a></li>
在选择LI后,我必须捕获&#34; ttol&#34;和&#34;键入&#34; ATTR。
这是我的代码:
var selectedTool = $(this).attr('tool');
var selectedType = $(this).attr('type');
但它不起作用,它未定义......但如果我使用它:
$(this).html();
我得到:
<li><a class="" value="short" tool="car" type="monov"> text </a></li>
我如何获得这些属性?
由于
答案 0 :(得分:3)
尝试以下代码:
var $anchor = $(this).find("a");
var selectedTool = $anchor.attr('tool');
var selectedType = $anchor.attr('type');
您试图访问li的属性和属性&#39;工具&#39;和&#39;键入&#39;是锚定所以它未定义。
答案 1 :(得分:2)
当您要选择<li>
时,您正在选择<a>
。
请试试这个:
var element = $(this).find("a");
var selectedTool = element.attr('tool');
var selectedType = element.attr('type');
答案 2 :(得分:0)
如果您有多个<a>
标记,则此代码无法正常运行。
理想情况下,您必须以ID的形式向每个标记添加唯一标识符。或者,您可以为其指定一个类名,并根据其索引标识其中一个元素。
<li><a class="" id="carOne" value="short" tool="car" type="monov"> text </a></li>
然后,您可以使用JQuery获取如下属性:
$("#carOne").attr('tool');
答案 3 :(得分:0)
您必须先选择li标签中的所有标签。然后获取attr值。
您可以尝试:
$("li a").attr('tool');
$("li a").attr('type');
答案 4 :(得分:0)
试试这个。它的工作正常,只需点击我的小提琴中的li项目就可以将这些attr值作为警报
$("li").click(function(e) {
var selectedTool = $(this).find("a").attr('tool');
var selectedType = $(this).find("a").attr('type');
alert(selectedTool);
alert(selectedType);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a href="#" class="active" tool="car" type="monov" >Home</a></li>
</ul>