1

这是我的 JavaScript 代码,用于查找所需.text()的元素,但它不起作用。

var divCollection = getElementByClass("titletrack");
for (var i=0; i<divCollection.length; i++) {
  if(divCollection[i].text() == title) {
    findMeText = divCollection[i].text();
    alert(findMeText);
  }
}
4

4 回答 4

1

工作小提琴

希望这是你的想法。这可能看起来很复杂,我确信有一种更简单的方法。但它有效。

var divCollection = document.getElementsByClassName("titletrack");

for (var i = 0; i < divCollection[0].childElementCount; i++) {
    if (divCollection[0].children[i].textContent == "Element 1") {
        findMeText = divCollection[0].children[i].textContent;
        alert(findMeText);
    }
}

现在您可以将 divCollection 的任何元素与您想要的任何字符串进行比较。在小提琴中,我使用了字符串“Element 1”来演示 JavaScript 的工作。

于 2013-08-09T09:34:41.637 回答
0

尝试这个:

var divCollection = document.getElementsByClassName('titletrack');

即 getElementsByClassName 而不是 getElementByClass。

这样的事情会完成交易:

var str = '';
var strSearchingFor = 'foo';
for(var i=0; i < divCollection .length; i++)
{
    str+= " " + divCollection[i].value;
    if(str == strSearchingFor)
    {
        alert("found");
    }
}
于 2013-08-09T08:55:57.120 回答
0

getElementByClass 的实现不一致(请参阅http://w3schools.invisionzone.com/index.php?showtopic=30857) - 如果您不想处理这些浏览器不一致,我建议您使用 jQuery 或类似的:

var divCollection = $('.titletrack');
于 2013-08-09T08:57:31.957 回答
0

本机javascript中没有element.text()方法。改为使用element.textContent

您还可以if(divCollection[i].textContext.indexOf(title) != -1)用来检查元素是否包含标题而不是等于它;-)

于 2013-08-09T08:59:47.920 回答