Javascript jQuery-搜索字符串中的值并删除整个条目,直到li标记
我得到了这段代码,它是一个Javascript jQuery-搜索字符串中的值并删除整个条目,直到li标记,javascript,jquery,Javascript,Jquery,我得到了这段代码,它是一个字符串,因为ACF是如何工作的: <div class="acf-fc-popup"><ul><li><a href="#" data-layout="two_column_layout" data-min="0" data-max="0">Two Column Layout</a></li><li><a href="#" data-layout="full_width_conte
字符串
,因为ACF是如何工作的:
<div class="acf-fc-popup"><ul><li><a href="#" data-layout="two_column_layout" data-min="0" data-max="0">Two Column Layout</a></li><li><a href="#" data-layout="full_width_content" data-min="" data-max="">Full Width Content</a></li><li><a href="#" data-layout="full_width_image" data-min="" data-max="">Full Width Image</a></li><li><a href="#" data-layout="full_width_video" data-min="" data-max="">Full Width Video</a></li><li><a href="#" data-layout="icons_with_heading" data-min="" data-max="">Icons with Heading</a></li><li><a href="#" data-layout="full_width_image_stretched_with_heading" data-min="" data-max="">Full Width Image (Stretched) with Heading</a></li><li><a href="#" data-layout="instafeed" data-min="" data-max="">Instagram Feed</a></li><li><a href="#" data-layout="content_blocks" data-min="" data-max="">Content Blocks</a></li><li><a href="#" data-layout="gallery" data-min="" data-max="">Gallery</a></li><li><a href="#" data-layout="logo_slider" data-min="" data-max="">Logo Slider</a></li><li><a href="#" data-layout="testimonials" data-min="" data-max="">Testimonials</a></li><li><a href="#" data-layout="call_to_action" data-min="" data-max="">Call to Action</a></li><li><a href="#" data-layout="twitter" data-min="" data-max="">Twitter</a></li><li><a href="#" data-layout="latest_news_slider" data-min="" data-max="">Latest News Slider</a></li><li><a href="#" data-layout="contact_form" data-min="" data-max="">Contact Form</a></li><li><a href="#" data-layout="separator" data-min="" data-max="">Separator</a></li><li><a href="#" data-layout="projects_slider" data-min="" data-max="">Projects Slider</a></li><li><a href="#" data-layout="map" data-min="" data-max="">Full Width Map</a></li><li><a href="#" data-layout="before_after_image" data-min="" data-max="">Before/After Image</a></li><li><a href="#" data-layout="accordion_section" data-min="" data-max="">Accordion Section</a></li></ul></div>
这允许我用跨距替换
全宽内容
,但我无法解决如何扩展匹配以包括包装li
,并基本上用零替换它。不要使用正则表达式来处理类似的问题。
您只需创建一个DOM元素并对其进行处理。
以下是一个例子:
var str=`- <;
var-elm=$(str);
elm.find(“li:has([data layout=full\u width\u content]))).remove();
$(“正文”)。附加(elm)代码>
您可以创建jQuery对象,然后可以使用各种API对其进行操作
var tmpl=- ;
//创建jQuery对象
var tmplDiv=$('',{html:tmpl});
//目标元素并将其删除
tmplDiv.find('a[data layout=“two_column_layout”]”)。最近('li')。remove();
//更新变量
tmpl=tmplDiv.html();
//去污点
console.log(tmpl)代码>
为什么要对字符串值进行操作?将其解析为HTML,然后您可以使用jQuery方法轻松地选择和删除元素<代码>/( - *全宽内容。*?/
应该可以做到这一点。?
字符使表达式尽可能少地匹配字符possible@Ander如果有不止一个元素,这将不起作用。这里有一个例子:@CBroe因为这是ACF吐出来的,这不是我的代码,你不是在它被插入列表后直接做吗?如果您可以挂接到该元素(或者添加第二个单击处理程序,在现有的处理程序更新列表后调用该处理程序),那么您可以直接对生成的DOM结构进行操作,使用jQuery选择器轻松找到元素,转到父元素,然后删除该元素。我的回答:$(“”).html(html).find('a[data layout=“两列布局”]).each(function(){$(this).closest('li').remove();}.end().html();
。
$(".tmpl-popup:contains('full_width_content')").html(function(_, html) {
console.log(html.replace(/(full_width_content)/g, '<span class="smallcaps">$1</span>'));
});