我有一个div
元素,其中包含动态创建类名的其他div
元素。
我需要搜索容器div
元素的内容,并通过其类名的前3个字母找到div
元素。
示例:
<div>
<div class="CTR-???????">
</div>
<div class="CTR-???????">
</div>
<div class="CTR-???????">
</div>
</div>
我确信有一种方法可以用Javascript来做到这一点,但我找不到那种方式。
有人可以帮忙吗?
答案 0 :(得分:2)
再分配一些课程:
<div>
<div class="CTR CTR-???????">
</div>
<div class="CTR CTR-???????">
</div>
<div class="CTR CTR-???????">
</div>
</div>
现在您可以通过查找.CTR
找到这些内容。在jQuery中,这将是$('.CTR')
或简单的JS document.getElementsByClassName('CTR')
答案 1 :(得分:1)
您可以将document.querySelectorAll
与^=
substring-matching attribute selector结合使用:
var elems = document.querySelectorAll('div[class^="CTR"]');
这将返回一个包含匹配元素的NodeList,它看起来像一个数组:
> [<div class="CTR-???????"></div>,
<div class="CTR-???????"></div>,
<div class="CTR-???????"></div>]
然后,您可以按索引访问各个选定的元素:
elems[0];
> <div class="CTR-???????"></div>
var elems = document.querySelectorAll('div[class^="CTR"]');
elems[0].style.color = '#f00';
elems[1].style.color = '#0f0';
elems[2].style.color = '#00f';
&#13;
<div>
<div class="CTR-???????">1</div>
<div class="CTR-???????">2</div>
<div class="CTR-???????">3</div>
</div>
&#13;
如果你正在使用jQuery,你可以简单地将我在上面的querySelectorAll
示例中使用的相同字符串传递给jQuery选择器:
$('div[class^="CTA"]')
var elems = $('div[class^="CTR"]');
$(elems[0]).css('color', '#f00');
$(elems[1]).css('color', '#0f0');
$(elems[2]).css('color', '#00f');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
<div class="CTR-???????">1</div>
<div class="CTR-???????">2</div>
<div class="CTR-???????">3</div>
</div>
&#13;
答案 2 :(得分:0)
这样的事情怎么样:
document.querySelectorAll('[class^="CTR-"], [class*=" CTR-"]');
答案 3 :(得分:0)
在jQuery中,您可以通过选择div
以及以CTR
开头的类来轻松完成此操作,并检查它们是否包含如下搜索字词:
$('div[class^="CTR"]:contains("Term that content has to require")').each(function() {
// do something
});