jQuery从嵌套元素中获取元素属性

时间:2017-05-02 09:35:27

标签: javascript jquery

我的情况如下:

<TextView  android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="@string/txtCredits"
    android:autoLink="web" android:id="@+id/infoTxtCredits"
    android:layout_centerInParent="true"
    android:linksClickable="true"></TextView>

<string name="txtCredits"><a href="http://www.google.com">Google</a></string>

you have to add   android:autoLink="web" in our application

我试图通过class =“ inputgrp ”上的点击事件从输入中获取属性 avl 的值

我尝试过:

<span class="inputgrp">
  <span class="additem">

  </span>
</span>
<input type="text" avl="abc">

$(".additem").click(function () {
  var v = $(this).parent().find("input:text").attr("avl")
})

但没有成功。我会很感激一些指南,因为我不知道我错了什么。

3 个答案:

答案 0 :(得分:3)

&#13;
&#13;
$(".inputgrp").click(function() {

  alert($(this).next("input:text").attr("data-avl"))

})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="inputgrp">
  <span class="additem">
1
  </span>
</span>
<input type="text" data-avl="abc">
&#13;
&#13;
&#13;

  1. 使用数据属性,因为avl不是有效属性
  2. 使用.next(),因为输入位于点击元素旁边

答案 1 :(得分:0)

.find搜索当前元素的子元素。 input不是child,而是sibling .inputgrp

$('.inputgrp').on('click',function() {
    var v = $(this).siblings('input[data-avl]').attr('data-avl');
});
  • 使用data-avl作为属性使其有效。
  • 使用.sibling()功能选择任何兄弟姐妹
  • 如果input元素始终是下一个元素,请使用.next()函数

答案 2 :(得分:0)

在html输入元素上使用data-avl=""属性,在jQuery中使用.data('avl')获取属性的值

$(".inputgrp").click(function() {

  alert($(this).next("input:text").data("avl"));

})