获取元素里面的元素
问题描述:
好吧,我试图实现一些简单的东西,但它似乎无法正常工作。我基本上是试图获得这个字体真棒图标内部的价值。获取元素里面的元素
<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);
});
答
首先,你正在使用的上下文选择是在另一个找到一个元素,然而p
不是i
的孩子,这样就不会被发现。相反,您可以使用siblings()
。
其次,val()
用于表单元素以获取其值。 p
元素没有值。大概你想得到的文字,所以text()
是你所需要的。试试这个:
$(".fa-trash-o").click(function() {
var id = $(this).siblings('.row_id').text();
var table = $(".table_name").text();
alert(id);
});
答
你必须使用siblings()
或next()
在这种情况下不find()
,
$(".fa-trash-o").click(function() {
var id = $(this).next(".row_id").text();
alert(id);
});
而且.val()
是输入表单元素,它会在内部寻找.value的财产。所以我们必须使用.text()
而不是那个。
FYI:$(this, "selector")
类似于$(this).find('selector')
答
var id = $(this,".row_id").val();
是没有意义和段落没有价值
你想要的元素是兄弟,所以你应该使用next()
和text()
。
$(this).next().text()
或
var id = $(this).siblings(".row_id").text();
var table = $(this).siblings(".table_name").text();
答
所以row_id
类在技术上并不在它的内部,但它的兄弟姐妹,你想针对这样的:
$(this).next('.row_id).text();
$(this).next('.table_name).text();
,因为它们都是<p>
标签,你应该抓住.text
或.html
,.val()
只适用于表单元素,如输入或文本区域
为什么不''.next()'? –
'下一个()','兄弟姐妹()'...皮肤猫的很多方法。 –
下次,你谈论剥皮猫,你会得到处理。说“狗”而不是“猫”! ':D' –