1

通过 Sharepoint 会生成一堆 td,其中包含一些元素。所以为了清楚起见,我无法编辑或更改元素,因为它是生成的。

我想要完成的是遍历所有内容'.js-contentFollowing-itemLink',然后如果 .text() 包含我正在寻找的特定文本,则'<span> Stop following</span>'应该用 .text() 隐藏'.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>

非常感谢!

4

3 回答 3

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();
    }
});
于 2013-04-05T09:39:56.817 回答
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/

于 2013-04-05T09:51:17.643 回答
0

您可以通过以下方式选择包含特定文本的对象,在此基础上您可以执行剩余操作...

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

于 2013-04-05T10:26:53.170 回答