遍历(获取)元素包装在 <a> 标记内
Traverse(get) elements wrapped inside <a> tag?
我有这样的东西:
<a class="feature category">
<div class="feature-txt left">
<p id="first">innerHTML</p>
</div>
<div class="feature-go left center">
<i class="fa fa-angle-right fa-fw"></i>
</div>
</a>
单击我想在 p 标签内获取文本,但是:
$('.category').on('click', function() {
alert($(this).find("p").innerHTML);
});
不工作。我怎样才能得到它?
$(this).find("p")
返回 DOM 元素的 jQuery 对象。 你不能直接在它们上使用JavaScript方法。
1)将对象转换为javascript
$('.category').on('click', function() {
alert($(this).find("p")[0].innerHTML);
});
2)或使用jquery的.text()
或.html()
方法
$('.category').on('click', function() {
alert($(this).find("p").text());
});
使用以下代码。 使用 jquery 的 .text() 或 .html() 函数
$('.category').on('click', function() {
alert($(this).find("p").text());
});
或
$('.category').on('click', function() {
alert($(this).find("p").html());
});
不起作用,因为div和p不是标签的子节点。
你还是被误解了。根据您的标记,可以很容易地说div
和p
是锚点的子节点。
问题是.innerHTML
javascript方法中,您将此方法绑定到jQuery对象,而您需要有一个DOM Node才能使用它,因此您可以使用[0]
后缀将其转换为DOM Node,或者在jquery中使用.get(0)
。
使用innerHTML
$('.category').on('click', function() {
alert($(this).find("p")[0].innerHTML);
alert($(this).find("p").get(0).innerHTML);
});
或者另一种方法是使用jQuery的.html(), .text()
,它也做同样的事情:
$('.category').on('click', function() {
alert($(this).find("p").html());
alert($(this).find("p").text());
});
相关文章:
- 遍历(获取)元素包装在 标记内
- 如何使用jquery将每4个元素包装在一个
- 标签中
- 如何将所有下一个元素包装到
- Jquery使用Slice将前N个元素包装成一个新元素,并将其余N个元素打包成另一个新元素
- 我正在尝试使用 html 元素包装函数的返回值
- 将所有元素包装到 :nth-child
- 如何使用jQuery将所有HTML元素包装在DIV中,具体取决于这些HTML元素的总高度
- AngularJS :使用角度属性指令将元素包装到自定义模板中
- 设计模式下的浏览器将孤立的 LI 元素包装在 UL - Firefox 和 Chrome 中
- 用 元素包装现有的内联 SVG
元素 - 在遍历数组时每三个元素包装一次
- 停止引导导航中的元素包装
- 创建指令,该指令将每个列表元素包装在引导面板中,并带有删除、重新排序…的控件…
- 如何将所有元素包装在每个容器中
- 为什么使用jQuery元素包装元素要快得多?
- 直接从body标签中删除没有被另一个父HTML元素包装的元素
- 在jQuery效果(例如slideDown)之前确定元素包装器的最终大小
- 如何用html元素包装字符串的一个区域?
- 如何用元素包装/环绕突出显示的文本
- PHP 将每 3 个元素包装在 TR for 表中