使用jQuery

时间:2016-01-01 17:01:54

标签: javascript jquery html

我目前正试图找到一种方法来使用jQuery在段落的开头和特定链接之间获取文本:

<p>
    Lorem ipsum dolor sit amet, <a href="#">aliqua</a> consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna <a href="#">aliqua</a>. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>

在这种情况下,例如,如果我的元素是第一个链接,我需要获得以下文本:

Lorem ipsum dolor sit amet, aliqua

我已经将链接作为元素,让我们称之为 e

2 个答案:

答案 0 :(得分:2)

一种方法是根据子元素/文本节点是否具有先前的a元素来过滤文本。例如:

Example Here

var text = $('p').contents().filter(function () {
  return !$(this).prevAll('a').length;
}).text();

console.log(text); // Lorem ipsum dolor sit amet, aliqua
  • .contents()方法返回所有子元素和文本节点。

  • .filter()方法会迭代.contents()返回的所有内容。

  • 如果不是以前的a同级元素,则元素或文本节点将包含在已过滤项目集中。这意味着第一个a元素第一个a元素之前的所有文本节点都将包含在已过滤的集合中。

  • .text()方法被链接以检索所有返回的,已过滤的元素和文本节点的文本。

上面的代码只会返回第一个链接中的文本和它之前的文本。如果锚元素并不总是第一个,那么您只需添加一个类即可。例如,如果我们将类.target添加到特定链接,那么您可以使用:

Example Here

var text = $('p').contents().filter(function () {
  return !$(this).prevAll('a.target').length;
}).text();

答案 1 :(得分:0)

$(function(){
  
  var desiredTag = $("<p>"+$("p").html().split("</a>")[0]+"</a></p>").text();
  alert(desiredTag);
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
    Lorem ipsum dolor sit amet, <a href="#">aliqua</a> consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna <a href="#">aliqua</a>. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>

  1. $("p").html().split("</a>")[0]提供Lorem ipsum dolor sit amet, <a href="#">aliqua
  2. 附加</a>
  3. 将其包裹在<p>...</p>中并使其成为jQuery对象。
  4. 获取文字。