通过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>
并使用“停止关注”:/
非常感谢!
答案 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();
});
答案 2 :(得分:0)
您可以按照以下方式选择包含特定文本的对象,您可以根据这些方式执行剩余的操作...
示例:$('。js-contentFollowing-itemLink:contains(test)')。hide();将隐藏“测试”