在元素中获取元素

时间:2016-11-22 15:54:35

标签: jquery

好吧所以我试图实现一些简单但似乎它无法正常工作。我基本上试图获得字体内部令人敬畏的图标类的值。

<div class='last_split'>
    <i class='fa fa-trash-o' aria-hidden='true'></i>
    <p style='display: none;' class='row_id'>".$row["ID"]."</p>
    <p style='display: none;' class='table_name'>".$txt."</p>
</div>

既然有很多这样的字体真棒输出,我需要找到我点击的那个。 我现在面临的问题很简单,它不会返回值。它只返回一个空警报。

$(".fa-trash-o").click(function() {
    var id = $(this,".row_id").val();
    var table = $(".table_name").text();
    alert(id);
});

4 个答案:

答案 0 :(得分:1)

您必须在此上下文中使用siblings()next()而不是find()

$(".fa-trash-o").click(function() {
 var id = $(this).next(".row_id").text();
 alert(id);
});

同样.val()用于输入表单元素,它将在内部查找.value属性。所以我们必须使用.text()而不是那个。

仅供参考:$(this, "selector")类似于$(this).find('selector')

答案 1 :(得分:1)

所以row_id类在技术上并不属于它,而是它的兄弟,你想要像这样定位它:

$(this).next('.row_id).text();
$(this).next('.table_name).text();

由于它们都是<p>标记,因此您应该抓取.text.html.val()仅适用于输入或textarea等表单元素

答案 2 :(得分:0)

<GridView android:id="@+id/gridview2" android:layout_width="match_parent" android:layout_height="match_parent" android:horizontalSpacing="10dp" android:numColumns="2" android:paddingBottom="5dp" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="5dp" android:stretchMode="columnWidth" android:verticalSpacing="10dp" /> 毫无意义,段落没有值

您想要的元素是兄弟姐妹,因此您应该使用var id = $(this,".row_id").val();next()

text()

$(this).next().text()

答案 3 :(得分:0)

首先,您使用的上下文选择器用于在另一个元素中查找一个元素,但 var id = $(this).siblings(".row_id").text(); var table = $(this).siblings(".table_name").text(); 不是p的子元素,因此无法找到它。相反,您可以使用i

其次,siblings()用于表单元素以获取其值。 val()个元素没有值。大概你想得到文本,所以p就是你所需要的。试试这个:

text()
相关问题