我想检查文本是否存在并将其删除。我需要查找文本是否存在并删除父项。例如,如果 With Name + Date 存在,则删除:
<dt>Font</dt>
<dd>Arial </dd>
如果存在有姓名+日期+时间的另一个例子,则删除:
<dt>Font</dt>
<dd>Comic Sans </dd>
我的代码:
jQuery( document ).ready(function() {
if (jQuery('.item-options dd:contains("With Name")').length > 0)
{
var parent = jQuery('.item-options dd:contains("With Name")').parent('dl');
jQuery(parent).find('dt:contains("Font")').html('');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<dl class="item-options">
<dt>Radio test</dt>
<dd>With Name </dd>
<dt>Font</dt>
<dd>no font selected </dd>
</dl>
<dl class="item-options">
<dt>Radio test</dt>
<dd>With Name + Date</dd>
<dt>Font</dt>
<dd>Arial </dd>
</dl>
<dl class="item-options">
<dt>Radio test</dt>
<dd>With Name + Date + Time</dd>
<dt>Font</dt>
<dd>Comic Sans </dd>
</dl>
我的问题是因为名字全部存在,我的javascript适用于所有人。我怎样才能使javascript完全搜索?
答案 0 :(得分:1)
您可以使用jQuery的filter
功能。 contains
选择器不会尝试获得完全匹配,但是,就像名称所示,包含所需文本的字符串。
jQuery( document ).ready(function() {
if (jQuery('.item-options dd').filter(function() {
return jQuery(this).text() === "With Name";
}).length > 0)
{
var parent = jQuery('.item-options dd:contains("With Name")').parent('dl');
jQuery(parent).find('dt:contains("Font")').html('');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<dl class="item-options">
<dt>Radio test</dt>
<dd>With Name </dd>
<dt>Font</dt>
<dd>no font selected </dd>
</dl>
<dl class="item-options">
<dt>Radio test</dt>
<dd>With Name + Date</dd>
<dt>Font</dt>
<dd>Arial </dd>
</dl>
<dl class="item-options">
<dt>Radio test</dt>
<dd>With Name + Date + Time</dd>
<dt>Font</dt>
<dd>Comic Sans </dd>
</dl>
看起来很丑,但很有效。
答案 1 :(得分:0)
如果您知道html架构或以其他方式移除您想要的任何内容。我希望这会对您有所帮助。
$( document ).ready(function() {
if ($('.item-options dd:contains("With Name")').length > 0)
{
var parent = $('.item-options');
var children = $('.item-options').find("dd");
$(children).each(function(i,e){
if(~$(e).text().indexOf("With Name + Date + Time")){
$(e).nextAll().remove();
}
else if(~$(e).text().indexOf("With Name + Date")){
$(e).nextAll().remove();
}
});
}
});