Javascript-隐藏基于文本的动态分区

Javascript - Hide Dynamic Div based on text

本文关键字:动态 分区 文本 隐藏 于文本 Javascript-      更新时间:2023-09-26

我有一个表,它创建动态div,ID在创建时枚举,类似于下面的HTML:

<div id="dgpCheckDiv10_0">
    <input Delete
</div>
<div id="dgpCheckDiv10_1">
    text2
</div>

某些Div的复选框中会有如上所述的"删除"一词,而其他Div则会有一个根本没有标签的复选框。

我正在尝试编写一些javascript来隐藏那些不包含"删除"一词的复选框。

我有下面的脚本,但它没有达到.hide函数。有什么想法吗?

$(document).ready(function () {
    var divs= document.getElementsByTagName('div');
    for (var i = 0, len = divs.length; i < len; ++i) {
        console.log(divs[i].id);
        //if(divs[i].id.substring(divs[i].id.length) == 'dgpCheckDiv10_*') {
        if(/^dgpCheckDiv10_/.test(divs[i].id)) {
            if(divs[i].innerHTML.indexOf(" Delete") === -1) {
                console.log(divs[i].innerHTML);
                $(divs[i]).hide();
                //$(this).closest('#divDGP2Container').find('#task').hide();
            }
        }
    }    
});

这将隐藏不包含值为Delete的复选框的div。

$("div[id^=dgpCheckDiv10_]:not(:contains(:checkbox[value=Delete]))").hide();

如果你只是想隐藏复选框,而不是整个DIV:

$("div[id^=dgpCheckDiv10_] :checkbox:not([value=Delete])").hide();

这就是您需要做的:

<div id="dgpCheckDiv10_0">
 <input type="checkbox"/>Delete
</div>
<div id="dgpCheckDiv10_1">
<input type="checkbox"/>
</div>
$("div[id^='dgpCheckDiv10']").each(function()
{
    if($(this).html().indexOf("Delete") === -1)
    {
        $(this).find('input:checkbox').hide();
        // If you wish to remove it - just uncomment the following line
        //$(this).html("");
    }
});

http://jsfiddle.net/uj0twtd8/1/