我正在运行一个浏览每一行的 javascript。我希望能够搜索每一行,如果该行包含特定文本,则隐藏该行。例如:
<input id="search" type="button" value="Run" />
<textarea id="main" style="height:150px;">
300 300 300
300 200 300
100 100 150
</textarea>
Javascript
$('#search').bind('click', function () {
var lines = $("#main").val().split("\n");
for (var i = 0; i < lines.length; i++) {
if($([i].contains('300' || '200'){
$(lines).css('display','none');
}
}
});
代码会换行,因此在本例中是 3 行。但是我如何告诉它从每一行中找到某些文本并且不显示该行而不是仅仅取出数字。所以从上面的输出将是:
100 100 150
最佳答案
您需要替换整个文本区域值。由于 textarea 仅包含文本,因此每一行都没有可以隐藏或以任何方式设置样式的内部 html...全有或全无
以下过滤拆分数组然后使用换行符作为分隔符将其连接回去
$('#search').on('click', function() {
$("#main").val(function(_, oldVal) {
return oldVal.split('\n').filter(function(str) {
return str.indexOf('200') === -1 && str.indexOf('300')=== -1
}).join('\n');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="search" type="button" value="Run" />
<textarea id="main" style="height:150px;">
300 300 300
300 200 300
100 100 150
</textarea>
关于javascript - 在行中找到某些文本,然后隐藏这些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38054184/