if statement& jQuery:包含

时间:2013-06-23 21:40:47

标签: jquery if-statement contains

我有一个带有无样式链接的表,所以我想将这些链接包装在div中并通过Bootstrap类来设置它们的样式。我在使用.contains()函数时遇到问题,我也可能需要一些if语句的帮助。

到目前为止,这是我的代码,这是一个链接http://jsfiddle.net/clintongreen/LFb6M/

// Add Bootstrap button classes to Admin links
if($('td.menu-operations a:contains("add")') {
$(this).css('color','white').wrap('<div class="btn btn-inverse btn-mini" />');
}
else if($('td.menu-operations a:contains("edit")') {
$(this).css('color','white').wrap('<div class="btn btn-danger btn-mini" />');
}
else if($('td.menu-operations a:contains("delete")') {
$(this).css('color','white').wrap('<div class="btn btn-danger btn-mini" />');
}
else ($('td.menu-operations a')){
$(this).css('color','white').wrap('<div class="btn btn-danger btn-mini" />');
}

谢谢堆:)

2 个答案:

答案 0 :(得分:1)

执行if($(selector))将始终评估为true,正确的版本为if($(selector).length),但在这种情况下,不需要if。您还可以使用this,就好像它会在每个if块中更改一样(不会)

// Add Bootstrap button classes to Admin links
$('td.menu-operations a:contains("add")').css('color','white');
$('td.menu-operations a:contains("edit")').css('color','white');
$('td.menu-operations a:contains("delete")').css('color','white');
$('td.menu-operations a').css('color','white').wrap('<div class="btn btn-danger btn-mini" />');

http://jsfiddle.net/LFb6M/11/

答案 1 :(得分:0)

事实证明,我不需要if语句来解决这个问题。感谢@Musa指出并让我走上正轨。我能够从他的答案中找出解决方法。我会将其标记为正确,但我认为需要更加充实,以便更容易理解。

您可以在此处查看http://jsfiddle.net/clintongreen/LFb6M/15/

// Add Bootstrap button classes to Admin links
$('td.menu-operations a').css('color','white').wrap('<div class="btn btn-mini" />');
$('td.menu-operations a:contains("add")').parent().addClass('btn-primary');
$('td.menu-operations a:contains("edit")').parent().addClass('btn-inverse');
$('td.menu-operations a:contains("delete")').parent().addClass('btn-danger');

上面发生的事情是我们使用.wrap()将默认Bootstrap类包装在div中的所有链接,然后我们使用:contains选择器来定位具有特定文本的链接,然后使用.parent()定位新生成的div并通过.addClass()

添加适当的类

PS:使用时:包含小心使用选择器而不是默认的.contains()函数,因为这不适用于文本。