隐藏具有未定义字符串的列表项

时间:2016-08-04 07:49:19

标签: javascript html css

我在我的项目中使用Wikipedia API。我遍历一个对象来显示一篇文章及其描述如下。

enter image description here

大多数 li (文章)都能正常显示,但其中一些会显示未定义。像那样

enter image description here

我想要的是隐藏显示未定义 li 。我写了代码

// Check if some articles are undefined if so hide them
if (articleAuthor === "undefined") {
  $('.articleItem').html('');
}

但它没有帮助。 $('。articleItem')是动态创建列表项。

Codepen Project Link

提前致谢!

4 个答案:

答案 0 :(得分:3)

我认为你需要删除元素:

if (articleAuthor === undefined) { //remove the quote from undefined
  $('.articleItem').remove();
}

但前面的方法会删除所有articleItem,最好的方法是检查未定义并创建元素:

if(articleAuthor !== undefined){
   //create element logic here
}

答案 1 :(得分:2)

这个选择器在这里:

$('.articleItem')

将返回一个包含class' articleItem'的元素列表,你必须循环它以更改所有项目的html

答案 2 :(得分:2)

使用 typeof 检查 <table class="table table-bordered table-striped" border="1"> <tr><td align="center">4 laptops were not added because they lacked unique identifiers.</td></tr> <tr><td align="center">2 laptops were not added because they already exist in the database: </td></tr><tr><td> <table border="1" style="width:100%;"><th>Hostname</th><th>Asset Tag</th><th>Serial</th> <tr> <td></td> <td></td> <td>4646466</td> </tr> <tr> <td></td> <td></td> <td>4646467</td> </tr> </table></td></tr> <tr><td align="center">2 laptops were added to the database: </td></tr><tr><td> <table><th>Hostname</th><th>Asset Tag</th><th>Serial</th> <tr> <td></td> <td></td> <td>4646468</td> </tr> <tr> <td></td> <td></td> <td>4646469</td> </tr> </table></td></tr> </table>是否

undefined

答案 3 :(得分:2)

你需要做两件事:

首先,将if (articleAuthor === "undefined")if (typeof articleAuthor === "undefined")切换。

其次,将$('.articleItem').html('');切换为$('.articleItem').last().html('');

您还可以将domCache.$wikiArticlesList.append包裹在if {if (typeof articleAuthor === "undefined"))中,并且根本不会创建项目。