1

我必须第一次使用 jQuery....

<a class="Tag Resource" href="http://localhost/" 
resource="http://localres/" property="prop">test</a>

我尝试使用提取文本var = $('a').find('Tag Resource').text();var = $('a').find('Tag Resource').html();但它不起作用。我需要“测试”作为纯文本。

有人可以告诉我该怎么做吗?

提前致谢

4

7 回答 7

7

我想你正在寻找:

var t = $("a.Tag.Resource").text();

表示同时具有theTagclassesResource的标签。find() 方法用于搜索元素的子树。

于 2009-08-06T15:44:30.527 回答
5

给你(现场演示):

$(document).ready(
  function (){ 
    alert(  $('a.Tag.Resource').html()  );  
});

您的问题是您想要一个班级但使用了一个空间,所以它变成了两个;或者当使用 jquery 选择器引用类时,您需要在它们前面加上句点。

无论如何,上面的代码都会有所帮助。如果您真的只想要一门课,请将其更改为$('a.Tag-Resource')...

于 2009-08-06T15:48:49.817 回答
1

我认为问题在于您的 find 表达式的语法。

更新:事实上,你根本不想找到,你想要过滤。Find 只会选择 a 元素的后代,而不是元素本身。

我已经测试了下面的示例行。

这里的例子,看起来你想要

var text = $('a').filter('.Tag.Resource').text();
于 2009-08-06T15:48:22.390 回答
0
var text = "";
$("a").each(function(){
  text += $(this).html() + " " + $(this).attr("resource");
});
alert(text);
于 2009-08-06T15:48:22.373 回答
0

我不认为你可以有带空格的类名。你已经向 a 标签添加了 2 个类“Tag”和“Resource”,而你的 find 选择器不会找到它。

于 2009-08-06T15:49:19.737 回答
0

请记住,类名可以在页面上重复,空格表示应用于一个元素的两个类。您不能保证单个元素将具有该类,因此 .text() 可能会返回所有匹配元素的组合文本

$(".Tag.Resource").text();
于 2009-08-06T15:50:01.263 回答
0

好吧,你不必使用 JQuery ......

var text, links = document.links;
for (var i = 0; i < links.length; i++) {
   if (links[i].className == 'Tag Resource') {
      text = links[i].innerText;
      break;
   }
}
alert(text);
于 2009-08-06T15:52:42.380 回答