通过其内容查找span元素并设置包含div属性

时间:2017-03-04 10:57:01

标签: javascript jquery html

我在此表单中使用dynacloud.js列出了动态生成的链接:

<a href="#description1"><span>description 1</span></a>
<a href="#description2"><span>description 2</span></a>
<a href="#description3"><span>description 3</span></a>

这是从此表单中的引导程序类型跨度列表生成的:

<span class="label label-default">description 1</span>
<span class="label label-default">description 2</span>
<span class="label label-default">description 3</span>

跨度包含在隐藏的div中。

<div class="body_accordion" style="display: none;"> ..content.. </div>

什么是javascript或jQuery方法,允许我点击链接并拥有所有相应的隐藏div,其中链接描述= span描述切换为可见?

为什么这个问题如此令人反感? :)

让我重申一下:我希望根据其内容找到一个范围。不是ID或类请求的其他功能并不那么重要。感谢。

1 个答案:

答案 0 :(得分:0)

问题的jQuery解决方案:

使用contains()选择器

查找内容为“description 1”的span元素的每个实例
$("span:contains('description 1')");

然后管道到filter()选择器,只选择带有'label'类

的跨度
$("span:contains('description 1')").filter($(".label"));

然后爬上(在这种情况下为两个)父节点,使用parent()

到达所需的div
$("span:contains('description 1')").filter($(".label")).parent().parent();

使用show()将div设置为可见:

$("span:contains('description 1')").filter($(".label")).parent().parent().show();

如果名称是名为“text”的变量(即 var text; ):

$('span:contains('+text+')').filter($('.label')).parent().parent().show();