0

基本上,我有这个动态 HTML:

<div id="downloadSection">
            <a id="linkD" href="x.pdf"> 
                <span id="y">.pdf</span>
            File
            </a> <br>
</div>

请注意,它<div id="downloadSection">在文档中出现多次并且具有不同的值。

我需要构建一个搜索所有这些 div 的函数,如果 inside的span长度为 0,我想将类添加到 div。<a id="linkD"><div id="downloadSection">.nothere

我试过这个:

$("#postBody").each(function () {
                if ($("span#linkD").length == 0) {
                    $("#downloadSection").addClass("nothere");
                }
            });

, 只有第一个是隐藏的。请注意,这#postBody是嵌套此 div。

有任何想法吗?

4

2 回答 2

1

首先,不要使用重复的Id的使用类代替

html -

<div class="downloadSection">
            <a class="linkD" href="x.pdf"> 
                <span class="y">.pdf</span>
            File
            </a> <br>
</div>

js

$('.downloadSection').each(function(){
   if($.trim($(this).find('.linkD span').text()).length === 0){
     $(this).addClass('nothere');
   }
});
于 2013-06-15T20:29:41.410 回答
1

ID 应该始终是唯一的。具有相同 ID 的两个或多个元素是无效的.. 将您的 id 更改为 class,它应该可以工作

<div class="downloadSection">
        <a class="linkD" href="x.pdf"> 
         ....

并使用类选择器

$(".downloadSection").each(function () {
            var $this=$(this);
            if ($this.find("span.linkD").length == 0) {
               $(this).closest('.downloadSection').addClass('nothere');
            }
        });
于 2013-06-15T20:30:46.507 回答