如何获取包含某些文本的 div

3

HTML:

<div class="linkL 01 mp3/01.mp3 imgT/03.jpg">lorem1 - part1</div>
<div class="linkL 02 mp3/02.mp3 imgT/03.jpg">lorem2 - part2</div>
<div class="linkL 03 mp3/03.mp3 imgT/03.jpg">lorem3 - part3</div>

Javascript:

var numera = window.location.hash;
var numera  = numera.replace("#","");
console.log(numera); // `part3`
var author = $(".linkL:contains(numera)").html().split(" - ")[0];  

我希望能够得到 lorem3 的结果。

但是控制台显示如下:

index.js:37 Uncaught TypeError: Cannot read property 'split' of undefined

但是数字并没有出现在任何 div 中。 - Enrique YC
2个回答

5
你连��值的方式是错误的。
var author = $(".linkL:contains(" + numera + ")").text().split(" - ")[0]; 

您需要使用+来连接变量,否则该变量名称将被视为普通字符串。它所持有的值将不会被连接。

而您正在使用的类名mp3/01.mp3是无效的。有效的类名应遵循这些规则。


1
最好使用.text()而不是.html()。这样,我们只处理内容本身,而不是它的字符串标记。 - Todd

1
如果你需要找到lorem3,那么你可以循环遍历每个div来查找它。
  $(".linkL:contains(" + numera + ")").each(function() {
var author = $(this).text().split(" - ")[0];
if (author == "lorem3") {
  $(".result").text($(this).attr('class'));
}});

jsfiddle 示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接