Javascript 只针对页面上的一个元素
我写JS或jQuery已经有一段时间了,现在我遇到了这个新手问题。我试图将目标锁定在文本所在的一个元素,而不是页面上具有相同类的所有元素 我试图将用户在照片标题中的第一行粗体字放在其他元素中。这段代码有效,但我需要确保它不一样。就像用户有两张照片,其他人有标题一样,它应该像在代码中一样被复制 此处:我的HTML与Tumblr助手:Javascript 只针对页面上的一个元素,javascript,jquery,tumblr,Javascript,Jquery,Tumblr,我写JS或jQuery已经有一段时间了,现在我遇到了这个新手问题。我试图将目标锁定在文本所在的一个元素,而不是页面上具有相同类的所有元素 我试图将用户在照片标题中的第一行粗体字放在其他元素中。这段代码有效,但我需要确保它不一样。就像用户有两张照片,其他人有标题一样,它应该像在代码中一样被复制 此处:我的HTML与Tumblr助手: {block:Photoset} <div class="photoset-grid" data-layout="{Ph
{block:Photoset}
<div class="photoset-grid" data-layout="{PhotosetLayout}">
<div class="photoset-posts">
<div class="wrap">
{block:Photos}<img src="{PhotoURL-HighRes}"/> {/block:Photos}
</div>
<div class="background-wrap"></div>
</div>
<a class="post-date" href="{Permalink}">{TimeAgo}</a>
{block:Caption}<div class="caption">{Caption}</div>{/block:Caption}
<div class="post-details">
{block:HasTags}
<div class="post-details-tags">
{block:Tags}<a href="{TagURL}">#{Tag}</a>{/block:Tags}
</div>
{/block:HasTags}
<div class="post-details-buttons">
<i>{LikeButton}</i>
<i>{ReblogButton}</i>
</div>
</div>
</div>
{/block:Photoset}
这是我的JS:
// variables
var $photoCaption = $(".photo .wrap .caption strong:first-child").text();
var $removableElement = $(".photo .wrap .caption strong:first-child");
// remove original element
$(".photo .caption strong:first-child").parent().remove();
$removableElement.remove();
// place new element to its place
$(".photo .photo-photo").append("<p class='photo-caption'>" + $photoCaption + "</p>");
谢谢大家。您在回复jfriend时发布的JSFIDLE有助于澄清您的意思 我想我应该试试下面的方法:
$(".photo .caption").each(function() {
var $strongChildren = $(this).children('strong');
if ($strongChildren.length > 0) {
var $removableElement = $(".photo .caption").children('strong').first();
var $photoCaption = $removableElement.text();
// remove original element
$removableElement.remove();
// place new element to its place
$(this).siblings(".photo-photo").append("<p class='photo-caption'>" + $photoCaption + "</p>");
}
});
还有其他方法可以做到这一点。例如,您还可以找到所有第一个子字符串,然后调用$removableElement.closest'.photo';仅获取其包含的.photo元素
不过,上面的代码应该可以工作。如果您有任何问题,请告诉我。您有什么问题?还有,HTML在哪里?如果我们可以看到您试图以包含所有相关父标记的HTML为目标,那么我们只能帮助您以页面中的一个特定HTML元素为目标。仅供参考,您可能需要使用jQuery的.replaceWith,它一步完成删除和添加操作。@jfriend00好的,请稍等。不确定我是否正确理解了这个问题。这就是你要找的吗?请上传一些html以供参考reference@KD下面是一个场景:用户提交将Tumblr标题的第一行改为粗体,我正在尝试将第一个粗体放到另一个元素中,我将把它放在另一张图片的顶部。这就像一个图片说明。谢谢你,伙计。你真好。