我试图在使用jQuery跟随某个模式的所有链接之前添加一些文本。
如果链接遵循此结构:
<a href="//example.com/u/foo/">foo</a>
我想在它之前添加文字&#34;列出:&#34; 。
我可以使用以下方式定位链接:
$("a[href*='/u/']")
它有效。文本已添加。
问题是我不希望添加的文字成为可点击的<a>
标记的一部分。
我想要实现的目标是:
<span>Listed by: <a href="#">Foo</a></span>
&#13;
但我得到了这个:
<a href="#"><span>Listed by: </span>Foo</a>
&#13;
我不希望&#34;列出:&#34; 是可点击的。我想把它作为纯文本。
这是我的完整代码:
$("p>small.text-muted>a[href*='/u/']").prepend("<span class='listed-by'>Listed by: </span>");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<small class="text-muted">
<a href="/example.com/category/bar/">bar</a> | <a href="//example.com/u/foo/">foo</a> | 2 views
</small>
</p>
&#13;
答案 0 :(得分:3)
跨度是否需要环绕锚点?您可以使用insertBefore()。请注意,内容和元素顺序是从prepend()切换的。
$("<span class='listed-by'>Listed by: </span>").insertBefore("p>small.text-muted>a[href*='/u/']");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<small class="text-muted">
<a href="/example.com/category/bar/">bar</a> | <a href="//example.com/u/foo/">foo</a> | 2 views
</small>
</p>
答案 1 :(得分:0)
你可以像这样解决问题
var oldHtml = $("a[href*='/u/']").html(); // You retrieved all anchor element
var newHtml = "<span> Listed by: " + oldHtml + "</span>";
$(".text-muted").html(newHtml);
我希望这可能有用!
答案 2 :(得分:0)
你能尝试这样做吗?
$("p>small.text-muted>span").append("<a href='//example.com/u/foo/'>foo</a>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<small class="text-muted">
<a href="/example.com/category/bar/">bar</a> | <span class='listed-by'>Listed by: </span> | 2 views
</small>
</p>