假设我有一个包含下一个内容的div:
<div id="divOne">
<p>one</p>
<p>two</p>
<div id="aggregatedDiv"></div>
<p> three </p>
</div>
那么有没有办法删除前三个元素?我不知道元素的数量。我只想删除id="aggregatedDiv"
之前的所有内容。
我必须将结果作为html附加到其他div。
$("#otherDiv").append(resultOfSlicedDivOneHtml);
答案 0 :(得分:5)
您可以使用.prevAll()
选择所有以前的元素兄弟,并使用.addBack()
将前一个选择器(#aggregatedDiv
)添加到当前所选元素集。
$("#aggregatedDiv").prevAll().addBack().css("color", "red");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divOne">
<p>one</p>
<p>two</p>
<div id="aggregatedDiv">#</div>
<p> three </p>
</div>
如果要将所选元素添加到另一个元素,请使用底部示例:
$("#aggregatedDiv").prevAll().addBack().appendTo("#divTwo");
#divTwo {color: red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divOne">
<p>one</p>
<p>two</p>
<div id="aggregatedDiv">#</div>
<p> three </p>
</div>
<div id="divTwo"></div>
答案 1 :(得分:2)
如上所述,您可以使用add_filter( 'gform_notification', 'change_user_notification_attachments', 10, 3 );
function change_user_notification_attachments( $notification, $form, $entry ) {
if ( $notification['name'] == 'User Notification' ) {
$url = 'http://yoursite.com/path/to/file.pdf';
$notification['attachments'] = array( $url );
}
return $notification;
}
,但您还需要.prevAll()
来实现您的目标:
.addBack()
答案 2 :(得分:1)
这应该有效:
var elements = $("#aggregatedDiv").prevAll(); //gets everything before aggregatedDiv
elements = elements.add($("#aggregatedDiv")); //we want aggregatedDiv in the collection as well
$("#otherDiv").append(elements); //move them all into the other div