如何隐藏.each()Jquery之外的特定元素

时间:2013-04-05 09:34:53

标签: javascript jquery

通过Sharepoint生成一堆tds,其中包含一些元素。所以要明确我不能编辑或更改元素,因为它生成了。

我想要完成的是迭代所有'.js-contentFollowing-itemLink'然后如果.text()包含我要查找的特定文本,'<span> Stop following</span>'应该隐藏'.hide()'

我似乎无法实现这一点,我尝试了很多方法。

这是jsfiddle: http://jsfiddle.net/QXwyk/3/

另外请注意,我无法获取唯一的ID,其中许多元素都是使用不同的值和文本生成的。

HTML:

<span class="ms-contentFollowing-itemTitle">
<a href="#" class="js-contentFollowing-itemLink">test</a>
</span>

<br>
<div class="js-contentFollowing-itemUrlDiv">
<span class="ms-metadata ms-contentFollowing-itemUrl"></span>

    <input type="text" readonly="readonly" class="ms-metadata ms-contentFollowing-itemUrl ms-contentFollowing-itemFullUrl" style="visibility: visible; border-color: transparent; background-color: transparent;">
</div>
<a href="#" class="ms-secondaryCommandLink"><span>Stop following</span></a>

我的JS:

$('.js-contentFollowing-itemLink').each(function () {
        if ($(this).text() == "test")

            $(this).closest("span").hide();


    });

注意:我知道它隐藏了错误的元素,但是If语句在if语句中使用了我无法完成的代码,我需要隐藏“停止跟随”。这个JS只是我所做的一个不起作用的例子。

我尝试在if语句中使用$('.ms-secondaryCommandLink span').hide();,但删除了所有<span>并使用“停止关注”:/

非常感谢!

3 个答案:

答案 0 :(得分:1)

您的代码中有几个问题:

$('.js-contentFollowing-itemLink').each(function () {
    if ($(this).text() == "test")
    var text = $(this).parent().parent().parent().hide); <-- hide not closed properly
} <--- Extra bracket here..
});

工作代码:

$('.js-contentFollowing-itemLink').each(function () {
    if ($(this).text() == "test") {
        var text = $(this).parent().parent().parent().hide();
    }
});

答案 1 :(得分:0)

HTML

<div class="ms-content">
<span class="ms-contentFollowing-itemTitle">
<a href="#" class="js-contentFollowing-itemLink">test</a>
</span>

<br>
<div class="js-contentFollowing-itemUrlDiv" id="contentFollowingUrl_18" url="http://dev/socialsites/Utförsåkning">
<span class="ms-metadata ms-contentFollowing-itemUrl"></span>

    <input type="text" readonly="readonly" class="ms-metadata ms-contentFollowing-itemUrl ms-contentFollowing-itemFullUrl" style="visibility: visible; border-color: transparent; background-color: transparent;">
</div>
<a href="#" class="ms-secondaryCommandLink"><span>Stop following</span></a>
</div>

JS

$('.js-contentFollowing-itemLink').each(function () {
     if ($(this).text() == "test")
         var text = $(this).closest('.ms-content').find('.ms-secondaryCommandLink').hide();
});

http://jsfiddle.net/QXwyk/4/

答案 2 :(得分:0)

您可以按照以下方式选择包含特定文本的对象,您可以根据这些方式执行剩余的操作...

示例:$('。js-contentFollowing-itemLink:contains(test)')。hide();将隐藏“测试”