所以这是我的代码
$(function() {
$.getJSON('test.json', function(data) {
var items = [];
$.each( data.products, function( key, val ) {
for (var i = 0; i < data.products.length; i++) {
var obj = data.products[i];
if (obj.title == 'Hat') {
var Imgs = '<div class="Hats"><img src="' + obj.imUrl + '"></div>'
$(Imgs).appendTo($(".HatsImages"));
}
}
});})})
所以我说明'obj.title'(这句话是“普通黑色可调节帽子”)是否有单词Hat init然后将'obj.imUrl'附加到我的HTML中。
如果我用“普通黑色可调节帽子”替换“帽子”,它可以工作,但我只是想检查“帽子”这个词而不是完整的句子,希望这是有道理的。
答案 0 :(得分:2)
您可以使用String#includes
,但必须记住它区分大小写。解决此问题的一种简单方法是首先转换标题toLowerCase。
为了获得更多控制,我建议使用Regular Expressions。
为什么呢?考虑一下你在哪里有像#34; Chat&#34;或&#34;那&#34;,其中&#34;帽子&#34;是一个子串。使用正则表达式和word boundaries来解释这一点要容易得多。
let title1 = "Amazing Hat"
let title2 = "Amazing Cat"
let title3 = "Amazing Chat"
// Using includes
console.log( title1.toLowerCase().includes("hat") ) // true :)
console.log( title2.toLowerCase().includes("hat") ) // false :)
console.log( title3.toLowerCase().includes("hat") ) // true :(
// Using regular expression
console.log( (/\bhat\b/gi).test(title1) ) // true :)
console.log( (/\bhat\b/gi).test(title2) ) // false :)
console.log( (/\bhat\b/gi).test(title3) ) // false :)
&#13;
答案 1 :(得分:0)
您想要obj.title.includes(‘hat’)
。
答案 2 :(得分:0)
使用indexOf
,我相信它是适用于某种情况的合适工具
$(function() {
$.getJSON('test.json', function(data) {
var items = [];
$.each( data.products, function( key, val ) {
for (var i = 0; i < data.products.length; i++) {
var obj = data.products[i];
if (obj.title.toLowerCase().indexOf('Hat') >= 0) {
var Imgs = '<div class="Hats"><img src="' + obj.imUrl + '"></div>'
$(Imgs).appendTo($(".HatsImages"));
}
}
});})})