2016-08-25 48 views
0

我有一个使用jquery的问题。使用jquery获取两个属性

这是我的HTML标记:

<li><a class="" value="short" tool="car" type="monov"> text </a></li> 

我捕捉到,选择李, “TTOL” 和 “类型” 后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> 

我如何获得这些属性?

感谢

+1

尝试$(本).find( “A”)。ATTR(”工具“) –

+0

它的工作原理!非常感谢!我做错了什么? –

+0

查看下面的答案如果它有帮助 –

回答

3

尝试下面的代码:

var $anchor = $(this).find("a"); 
    var selectedTool = $anchor.attr('tool'); 
    var selectedType = $anchor.attr('type'); 

您试图访问里的属性和属性“工具”和“类型”是锚所以它是未来不确定的。

0

当您有多个<a>标签时,此代码无法正常工作。

理想情况下,您必须在每个标签中以ID的形式添加唯一标识符。或者,你可以给它一个类名,并根据它的索引标识一个元素。

<li><a class="" id="carOne" value="short" tool="car" type="monov"> text </a></li> 

然后,您可以使用jQuery来得到这样的属性:

$("#carOne").attr('tool'); 
0

你必须首先选择在李的标签全部标签。然后获取attr值。

你可以试试:

$("li a").attr('tool'); 
$("li a").attr('type'); 
2

您选择<li>时要选择<a>

请试试这个:

var element = $(this).find("a"); 

var selectedTool = element.attr('tool'); 
var selectedType = element.attr('type'); 
+1

这看起来更好,因为它保持选择器而不是每次都找到。 – Brduca

0

试试这个。它的做工精细,只需点击李项在我的小提琴,你可以得到这些ATTR值警报

$("li").click(function(e) { 
 
    
 
\t \t var selectedTool = $(this).find("a").attr('tool'); 
 
\t \t var selectedType = $(this).find("a").attr('type'); 
 
\t \t alert(selectedTool); 
 
\t \t 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>