Javascript 通过拆分数组循环并使用wrapInner输出
我很难想出做以下事情的最佳方法。我得到了0到x个字符串名,即:Zillow,Trulia。我想做的是将图像与这些字符串名称关联,然后将它们显示到列表中。我正在尝试执行切换语句,但我不确定这是否适用于1种以上的情况…如果我错了,请纠正我 例如,变量列表包含两个项(Zillow/Trulia),我如何检查kyJavascript 通过拆分数组循环并使用wrapInner输出,javascript,jquery,arrays,loops,Javascript,Jquery,Arrays,Loops,我很难想出做以下事情的最佳方法。我得到了0到x个字符串名,即:Zillow,Trulia。我想做的是将图像与这些字符串名称关联,然后将它们显示到列表中。我正在尝试执行切换语句,但我不确定这是否适用于1种以上的情况…如果我错了,请纠正我 例如,变量列表包含两个项(Zillow/Trulia),我如何检查kysplit函数变量的多个值,然后添加输出:$(“#查看图标列表”).wrapInner(“”+zillowImg+””) 现在,我的switch case抛出了一个意外的令牌错误,但我认为我并没
split
函数变量的多个值,然后添加输出:$(“#查看图标列表”).wrapInner(“”+zillowImg+” ”)代码>
现在,我的switch case抛出了一个意外的令牌错误,但我认为我并没有使用正确的方法。有人知道我会怎么做吗?我会做一些循环吗?如果是的话,我会如何构造它
var reviewSiteNames = 'Zillow,Trulia';
reviewSiteNames = reviewSiteNames.split(',');
console.log(reviewSiteNames);
var zillowImg = '<img src="https://s3.amazonaws.com/retain-static/www/zillow.jpg" alt="Zillow">';
var truliaImg = '<img src="https://s3.amazonaws.com/retain-static/www/trulia.png" alt="Trulia">';
if (reviewSiteNames == '') {
$('#no-current-reviewSites').html('No review sites currently added')
}
/*else if (reviewSiteNames) {
$('#review-icon-list').wrapInner('<li class="review-icon"></li>');
}*/
switch (true) {
case (reviewSiteNames.indexOf('Zillow') >= 0):
$('#review-icon-list').wrapInner('<li class="review-icon">' + zillowImg + '</li>');
break;
case (reviewSiteNames.indexOf('Realtor.com') >= 0):
$('#review-icon-list').wrapInner('<li class="review-icon">' + realtorDotComImg + '</li>');
break;
case (reviewSiteNames.indexOf('Trulia') >= 0):
$('#review-icon-list').wrapInner('<li class="review-icon">' + truliaImg + '</li>');
default: return '';
};
//名称:
变量名称='Zillow,Trulia';
names=names.split(',');
//图像映射器:以名称作为键,以图像作为值的对象
变量图像={
“Zillow”:“,
“特鲁利亚”:”
};
//如果名称为空:(名称==''将不起作用,因为名称不再是字符串,它现在是数组)
如果(names.length==0){
$('#没有当前的评论站点').html('当前没有添加评论站点')
}
//如果有名字
否则{
//循环遍历所有名称
name.forEach(函数(名称){
//如果此名称在图像映射器中获得图像(图像[名称]!==未定义)
如果(图像[名称]){
//然后用它做些神奇的事情
$(“#查看图标列表”).wrapInner(“”+图像[名称]+” ”);
}
});
}
我希望这是有用的,因为我不太确定目标到底是什么。//名称:
变量名称='Zillow,Trulia';
names=names.split(',');
//图像映射器:以名称作为键,以图像作为值的对象
变量图像={
“Zillow”:“,
“特鲁利亚”:”
};
//如果名称为空:(名称==''将不起作用,因为名称不再是字符串,它现在是数组)
如果(names.length==0){
$('#没有当前的评论站点').html('当前没有添加评论站点')
}
//如果有名字
否则{
//循环遍历所有名称
name.forEach(函数(名称){
//如果此名称在图像映射器中获得图像(图像[名称]!==未定义)
如果(图像[名称]){
//然后用它做些神奇的事情
$(“#查看图标列表”).wrapInner(“”+图像[名称]+” ”);
}
});
}
我希望这是有用的,因为我不太确定目标到底是什么。以下是我将如何编写我从您的代码中理解的内容:
我想您应该检查reviewSiteNames
数组中是否有特定的单词,以确定如何包装#review icon list
元素
// Site names as a string
var reviewSiteNames = 'Zillow,Trulia';
// Site names as an array
reviewSiteNames = reviewSiteNames.split(',');
//console.log(reviewSiteNames);
// Some images used in li wrappers...
var zillowImg = '<img src="https://s3.amazonaws.com/retain-static/www/zillow.jpg" alt="Zillow">';
var truliaImg = '<img src="https://s3.amazonaws.com/retain-static/www/trulia.png" alt="Trulia">';
// If the array is empty
if (reviewSiteNames.length == 0) {
$('#no-current-reviewSites').html('No review sites currently added')
}
var myHTMLtoInsert = "";
// Check if specific values are in array
if( $.inArray('Zillow', reviewSiteNames) ){
myHTMLtoInsert += '<li class="review-icon">' + zillowImg + '</li>';
}
if( $.inArray('Realtor.com', reviewSiteNames) ){
myHTMLtoInsert += '<li class="review-icon">' + realtorDotComImg + '</li>';
}
if( $.inArray('Trulia',, reviewSiteNames) ){
myHTMLtoInsert += '<li class="review-icon">' + truliaImg + '</li>';
}
$('#review-icon-list').html(myHTMLtoInsert);
//站点名称作为字符串
var reviewSiteNames='Zillow,Trulia';
//作为数组的站点名称
reviewSiteNames=reviewSiteNames.split(',');
//console.log(reviewSiteNames);
//li包装中使用的一些图像。。。
var zillowImg='';
var truliaImg='';
//如果数组为空
如果(reviewSiteNames.length==0){
$('#没有当前的评论站点').html('当前没有添加评论站点')
}
var myHTMLtoInsert=“”;
//检查数组中是否存在特定值
if($.inArray('Zillow',reviewSiteNames)){
myHTMLtoInsert+=''+zillowImg+' ';
}
如果($.inArray('Realtor.com',reviewSiteNames)){
myHTMLtoInsert+=''+RealTorTotComimg+' ';
}
如果($.inArray('Trulia',reviewSiteNames)){
myHTMLtoInsert+=''+truliaImg+' ';
}
$(“#查看图标列表”).html(myHTMLtoInsert);
以下是我如何写出我从您的代码中理解的内容:
我想您应该检查reviewSiteNames
数组中是否有特定的单词,以确定如何包装#review icon list
元素
// Site names as a string
var reviewSiteNames = 'Zillow,Trulia';
// Site names as an array
reviewSiteNames = reviewSiteNames.split(',');
//console.log(reviewSiteNames);
// Some images used in li wrappers...
var zillowImg = '<img src="https://s3.amazonaws.com/retain-static/www/zillow.jpg" alt="Zillow">';
var truliaImg = '<img src="https://s3.amazonaws.com/retain-static/www/trulia.png" alt="Trulia">';
// If the array is empty
if (reviewSiteNames.length == 0) {
$('#no-current-reviewSites').html('No review sites currently added')
}
var myHTMLtoInsert = "";
// Check if specific values are in array
if( $.inArray('Zillow', reviewSiteNames) ){
myHTMLtoInsert += '<li class="review-icon">' + zillowImg + '</li>';
}
if( $.inArray('Realtor.com', reviewSiteNames) ){
myHTMLtoInsert += '<li class="review-icon">' + realtorDotComImg + '</li>';
}
if( $.inArray('Trulia',, reviewSiteNames) ){
myHTMLtoInsert += '<li class="review-icon">' + truliaImg + '</li>';
}
$('#review-icon-list').html(myHTMLtoInsert);
//站点名称作为字符串
var reviewSiteNames='Zillow,Trulia';
//作为数组的站点名称
reviewSiteNames=reviewSiteNames.split(',');
//console.log(reviewSiteNames);
//li包装中使用的一些图像。。。
var zillowImg='';
var truliaImg='';
//如果数组为空
如果(reviewSiteNames.length==0){
$('#没有当前的评论站点').html('当前没有添加评论站点')
}
var myHTMLtoInsert=“”;
//检查数组中是否存在特定值
if($.inArray('Zillow',reviewSiteNames)){
myHTMLtoInsert+=''+zillowImg+' ';
}
如果($.inArray('Realtor.com',reviewSiteNames)){
myHTMLtoInsert+=''+RealTorTotComimg+' ';
}
如果($.inArray('Trulia',reviewSiteNames)){
myHTMLtoInsert+=''+truliaImg+' ';
}
$(“#查看图标列表”).html(myHTMLtoInsert);
是否必须是reviewSiteNames.indexOf('Trulia')
?为什么你不能用==
来代替呢?@ibrahimmahrir我用的是这个网站上的一个例子,它使用了索引,所以我认为这是正确的方法,但是如果==
有效,那就好了。我只是不确定如何让它工作。==
是一个检查类型是否匹配的操作员。这不是问题所在<代码>开关
语句肯定被误用了。错误是因为默认值:返回“”代码>(如果代码未包装在函数中)。+您能详细解释一下您想要实现什么吗。这仍然很模糊。它必须是reviewSiteNames.indexOf('Trulia')
?为什么你不能用==
来代替呢?@ibrahimmahrir我用的是这个网站上的一个例子,它使用了索引,所以我认为这是正确的方法,但是如果==
有效,那就好了。我只是不确定如何让它工作。==
是一个检查类型是否匹配的操作员。这不是问题所在<代码>开关
语句为m
// Site names as a string
var reviewSiteNames = 'Zillow,Trulia';
// Site names as an array
reviewSiteNames = reviewSiteNames.split(',');
//console.log(reviewSiteNames);
// Some images used in li wrappers...
var zillowImg = '<img src="https://s3.amazonaws.com/retain-static/www/zillow.jpg" alt="Zillow">';
var truliaImg = '<img src="https://s3.amazonaws.com/retain-static/www/trulia.png" alt="Trulia">';
// If the array is empty
if (reviewSiteNames.length == 0) {
$('#no-current-reviewSites').html('No review sites currently added')
}
var myHTMLtoInsert = "";
// Check if specific values are in array
if( $.inArray('Zillow', reviewSiteNames) ){
myHTMLtoInsert += '<li class="review-icon">' + zillowImg + '</li>';
}
if( $.inArray('Realtor.com', reviewSiteNames) ){
myHTMLtoInsert += '<li class="review-icon">' + realtorDotComImg + '</li>';
}
if( $.inArray('Trulia',, reviewSiteNames) ){
myHTMLtoInsert += '<li class="review-icon">' + truliaImg + '</li>';
}
$('#review-icon-list').html(myHTMLtoInsert);