从.html()中排除一些元素;在jQuery中

时间:2017-12-12 11:30:05

标签: javascript jquery html

我有一个带有文字的链接,linebreak和里面的图片。

<a title="title" href="#" class="mail">info@domain.de
  <br><img src="img/icons/icon.png">
</a>

因此,为了在我使用的锚点内完成所有操作:

$('.mail').html();

现在我想排除这个只是为了获取info@domain.de:

<br><img src="img/icons/icon.png">

实施例

$('.mail').html();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a title="title" href="#" class="mail">info@domain.de
   <br><img src="img/icons/icon.png">
</a>

我该怎么做?

3 个答案:

答案 0 :(得分:5)

您可以使用text()获取<a>代码

的文字

var text = $('.mail').text();
console.log(text);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a title="title" href="#" class="mail">info@domain.de
   <br><img src="img/icons/icon.png">
</a>

答案 1 :(得分:3)

在这种特定情况下,如果您只想要文字,请使用text代替html(可能使用.trim()$.trim(...)) :

&#13;
&#13;
console.log($('.mail').text().trim());
&#13;
<a title="title" href="#" class="mail">info@domain.de
   <br><img src="img/icons/icon.png">
</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

但是,在一般情况下,如果您想要包含的元素和您希望在此类情况下排除的其他元素,则可以制作cloneremove个:

&#13;
&#13;
console.log(
  $('.mail').clone()
    .find("br, img").remove()
    .end()
    .html()
);
&#13;
<a title="title" href="#" class="mail">info@domain.de
   <br><img src="img/icons/icon.png">
   <span>Suppose you wanted this span but not the <code>br<code> or <code>img</code>.</span>
</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:2)

使用.text()代替.html()

&#13;
&#13;
$('.mail').text();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a title="title" href="#" class="mail">info@domain.de
   <br><img src="img/icons/icon.png">
</a>
&#13;
&#13;
&#13;