求助 JQUERY根据是否有文本 决定CSS样式 本帖最后由 walunwine4 于 2013-05-10 22:33:57 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if($(".name").text()=="") { $(".name").hide(); $(".date").hide(); } 刚刚测试了你回复的代码,不好用。即使直接在HTML环境下也没有效果 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script><script type="text/javascript"> $(function(){ //alert($("li[class='name']").text()); if($("li[class='name']").text()==""){ $("li").hide(); }else{ $("li").show(); } })</script><li class="name">4345</li><li class="date">2013-01-01</li> 刚刚测试了你回复的代码,不好用。即使直接在HTML环境下也没有效果<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript">$(function(){ if($(".name").text()=="") { $(".name").hide(); $(".date").hide(); }});</script><ol> <li>111111111</li> <li class="name"></li> <li class="date">2013/5/10</li> <li>222222222</li></ol> 这个貌似只对一个管用.能不能让他对整个页面上的都有效果呢?我是JQUERY的新手,还在学习中.麻烦了. 什么叫对整个页面上的都有效果?你一个页面上有几个li?我这段代码的意思是,只要class=name的li有值就显示页面上所有的li,反之隐藏。 我的页面是DIV下面都是以UL为单位的<ul class="news_server"><li class="name"></li><li class="date">2013-04-18</li><li class="content"></li></ul>每个页面起码有5个左右。所以才希望能够把页面上所有<li class="name"></li>中间没有文字的都隐藏起来我也在奇怪这个事,因为我用你的代码用HTML测试的时候就能够生效,但是放在PHP下就不行了。 你是想只要class=name的li没有值就把所有的li隐藏?还是不论class是什么只要它没有值就隐藏这个li(仅隐藏自身)? <?php $news_list_by_author_sql='select n.article_id,n.authors_id,n.news_last_modified, nt.news_article_name, nt.news_article_text from ' . TABLE_NEWS_ARTICLES . ' n left join ' . TABLE_NEWS_ARTICLES_TEXT . ' nt on (n.article_id = nt.article_id and nt.language_id = \'' . (int)$_SESSION['languages_id'] . '\') and n.authors_id = n.news_status = \'1\'' . ' order by n.article_id DESC limit 4'; $news = $db->Execute($news_list_by_author_sql); if ($news->RecordCount() > 0) { $i = 0; $article_array = array(); while (!$news->EOF) { $article_array[$i] = array( 'articleId' => $news->fields['article_id'], 'articledate' => date("Y-m-d",strtotime($news->fields['news_last_modified'])), 'articleName' => stripslashes($news->fields['news_article_name']), 'articleText' => stripslashes($news->fields['news_article_text']), ); $i++; $news->MoveNext(); } //end while } else { $articlesNotFound = true; }?><div class="newslist_server"><h2 style="line-height:27px;">titles</h2> <div class="news_server1"><?php // Oh no, no articles were found if ($articlesNotFound == true) { echo '<strong>'.TEXT_NO_NEWS_ARTICLES.'</strong>'; } else { foreach ($article_array as $newsArticle) { ?> <ul class="news_server"> <li class="name"><?php echo $newsArticle['articleName']; ?></li><li class="date"><?php echo $newsArticle['articledate']; ?></li> <li class="content"><?php echo $newsArticle['articleText']; ?></li> </ul> <?php } }?> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script><script type="text/javascript"> $(function(){ //alert($("li[class='name']").text()); if($("li[class='name']").text()==""){ $("li").hide(); }else{ $("li").show(); } })</script> </div></div>这个是我页面上的代码因为这个是我页面上的一个文章部分,所以我希望是class=name的li没有值就把他隐藏起来。用了你的代码之后没有反应 代码稍微变更一下,第一你确定你CLASS=name的值是空的吗?如果是,那么把这段代码粘贴到<head></head>标签之间<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script><script type="text/javascript"> $(function(){ if($("li[class='name']").text()==""){ $("li[class='name']").hide(); }else{ $("li[class='name']").show(); } })</script> 已经加入到头部了,但是没有效果值默认是有<?php echo $newsArticle['articleName']; ?>从数据库调用过来的数据,但是可能是因为数据库调用的时候有问题,所以调用过来的是空值<ul class="news_server"><li class="name"></li><li class="date">2013-04-18</li></ul>所以才想到用JQUERY去把这日期隐藏起来. 这就是我之前遇到的问题,没办法才来求助JQUERY的http://bbs.csdn.net/topics/390454435?page=1#post-394453044 因为这个是我页面上的一个文章部分,所以我希望是class=name的li没有值就把他隐藏起来。你到底隐藏谁啊?<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script><script type="text/javascript"> $(function(){ alert($("li[class='name']").text()); if($("li[class='name']").text()==""){ $("li").hide(); }else{ $("li").show(); } })</script>告诉我弹出来的结果 Search Image MapsSearch Image MapsSearch Image MapsSearch Image Maps弹出来的是有效的那个文章的标题 那这个li class='name'标签不就相当于有值了吗,你的需求不是没有值去隐藏吗?有值直接显示不就好了吗? 应该这样写$(function(){ $("li[class='name']").each(function(){ if($(this).text() == "") $(this).hide(); });})应为 <li class="name"> 有许多个 那是我描述的错误了可能.因为他是有的是有值,有的没有值<ul class="news_server"> <li class="name">Search Image MapsSearch Image MapsSearch Image MapsSearch Image Maps</li><li class="date">2013-05-06</li><li class="content">adfadfadfadfadfadfadf</li> </ul><ul class="news_server"> <li class="name"></li><li class="date">2013-04-18</li> </ul>他是这两种情况,所以弄的我也是很头疼,不知道什么方式处理好,无论通过ID还是通过CLASS都会影响到有值的. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script><script type="text/javascript"> $(function(){ $("li[class='name']").each(function(){ if($(this).text()==""){ $(this).hide(); $(this).next().hide(); } }); })</script> 如何在样式表中定义一元素的高度为其父元素高度-10? jqgrid 取值的问题 怎么取json对象的具有外键的属性的值呢 如何实现输入的密码用星号显示于页面 我要用confirm做弹出框,弹出之后原来的那一页也要显示。应怎样写? 小弟在线急求一正则表达式,要求文本框只能输入001~999之间的数字,必须三位 关于用select选择确定月日 小应用。发一个。 又让大家费心了,好心的人请帮我!!! js动态生成c:forEach标签,请教! 如何实现页面自动滚动 Jquery获取WSDL文件中节点
{
$(".name").hide();
$(".date").hide();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
//alert($("li[class='name']").text());
if($("li[class='name']").text()==""){
$("li").hide();
}else{
$("li").show();
}
})
</script>
<li class="name">4345</li>
<li class="date">2013-01-01</li>
<script type="text/javascript">
$(function(){
if($(".name").text()=="")
{
$(".name").hide();
$(".date").hide();
}
});
</script><ol>
<li>111111111</li>
<li class="name"></li>
<li class="date">2013/5/10</li>
<li>222222222</li>
</ol>
我这段代码的意思是,只要class=name的li有值就显示页面上所有的li,反之隐藏。
我的页面是
DIV
下面都是以UL为单位的
<ul class="news_server">
<li class="name"></li><li class="date">2013-04-18</li>
<li class="content">
</li>
</ul>
每个页面起码有5个左右。所以才希望能够把页面上所有<li class="name"></li>中间没有文字的都隐藏起来我也在奇怪这个事,因为我用你的代码用HTML测试的时候就能够生效,但是放在PHP下就不行了。
还是不论class是什么只要它没有值就隐藏这个li(仅隐藏自身)?
$news_list_by_author_sql='select n.article_id,n.authors_id,n.news_last_modified, nt.news_article_name, nt.news_article_text from ' . TABLE_NEWS_ARTICLES . ' n left join ' . TABLE_NEWS_ARTICLES_TEXT . ' nt on (n.article_id = nt.article_id and nt.language_id = \'' . (int)$_SESSION['languages_id'] . '\') and n.authors_id = n.news_status = \'1\'' . ' order by n.article_id DESC limit 4';
$news = $db->Execute($news_list_by_author_sql); if ($news->RecordCount() > 0) {
$i = 0;
$article_array = array();
while (!$news->EOF) {
$article_array[$i] = array(
'articleId' => $news->fields['article_id'],
'articledate' => date("Y-m-d",strtotime($news->fields['news_last_modified'])),
'articleName' => stripslashes($news->fields['news_article_name']),
'articleText' => stripslashes($news->fields['news_article_text']),
);
$i++;
$news->MoveNext();
} //end while
} else {
$articlesNotFound = true;
}?>
<div class="newslist_server">
<h2 style="line-height:27px;">titles</h2>
<div class="news_server1"><?php
// Oh no, no articles were found
if ($articlesNotFound == true) {
echo '<strong>'.TEXT_NO_NEWS_ARTICLES.'</strong>';
} else {
foreach ($article_array as $newsArticle) {
?>
<ul class="news_server">
<li class="name"><?php echo $newsArticle['articleName']; ?></li>
<li class="date"><?php echo $newsArticle['articledate']; ?></li>
<li class="content"><?php echo $newsArticle['articleText']; ?></li>
</ul>
<?php
}
}?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
//alert($("li[class='name']").text());
if($("li[class='name']").text()==""){
$("li").hide();
}else{
$("li").show();
}
})
</script>
</div>
</div>这个是我页面上的代码因为这个是我页面上的一个文章部分,所以我希望是class=name的li没有值就把他隐藏起来。
用了你的代码之后没有反应
如果是,那么把这段代码粘贴到<head></head>标签之间<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
if($("li[class='name']").text()==""){
$("li[class='name']").hide();
}else{
$("li[class='name']").show();
}
})
</script>
值默认是有<?php echo $newsArticle['articleName']; ?>从数据库调用过来的数据,但是可能是因为数据库调用的时候有问题,所以调用过来的是空值
<ul class="news_server">
<li class="name"></li>
<li class="date">2013-04-18</li>
</ul>
所以才想到用JQUERY去把这日期隐藏起来.
这就是我之前遇到的问题,没办法才来求助JQUERY的
http://bbs.csdn.net/topics/390454435?page=1#post-394453044
<script type="text/javascript">
$(function(){
alert($("li[class='name']").text());
if($("li[class='name']").text()==""){
$("li").hide();
}else{
$("li").show();
}
})
</script>告诉我弹出来的结果
$(function(){
$("li[class='name']").each(function(){
if($(this).text() == "")
$(this).hide();
});
})
应为 <li class="name"> 有许多个
因为他是有的是有值,有的没有值
<ul class="news_server">
<li class="name">Search Image MapsSearch Image MapsSearch Image MapsSearch Image Maps</li>
<li class="date">2013-05-06</li>
<li class="content">adfadfadfadfadfadfadf
</li> </ul>
<ul class="news_server">
<li class="name"></li>
<li class="date">2013-04-18</li>
</ul>
他是这两种情况,所以弄的我也是很头疼,不知道什么方式处理好,无论通过ID还是通过CLASS都会影响到有值的.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("li[class='name']").each(function(){
if($(this).text()==""){
$(this).hide();
$(this).next().hide();
}
});
})
</script>