如何在指定字符(逗号)之前提取子字符串

时间:2016-08-13 05:32:55

标签: javascript jquery css

我想在'之前提取所有内容,'逗号。并用相同的名称图像替换它。我如何在javascript或jquery中执行此操作?我试过这个,但没有为第一个和最后一个字符串工作  这是我的代码:

<html>
<head>
<script>
function splitString(stringToSplit, separator) {
var arrayOfStrings = stringToSplit.split(separator);
document.write('<img src="/images/'+ arrayOfStrings.join('.png" /><img src="/images/') + '/>');
}
</script>
</head>
<body>
<div  class="slidepop">
<script> splitString(',brickfast,travel insurance,guide,sim cart,tour',',')</script>
</div>   
</body>
</html>

3 个答案:

答案 0 :(得分:0)

您需要将循环应用为:

for(var i = 0; i < arrayOfStrings.length; i++){

            if(arrayOfStrings[i] !== ''){

               document.write('<img src="/images/'+ arrayOfStrings[i].join('.png" /><img src="/images/') + '/>');

            }

        }

答案 1 :(得分:0)

与@Hemanshi karelia相同的基本前提,但我没有使用document.write,而是建议从图像元素创建一个字符串,然后将所有元素添加到此图像字符串中 - 使用jquery的.html将其添加到div中()。这是有利的,因为它只在最后操作DOM,当所有的图像元素都已构建并传递到图像字符串然后传递给div时,而不是所有其他发布的答案在每次迭代时改变DOM

splitString('brickfast,travel insurance,guide,sim cart,tour');

function splitString(stringTotal) {
  var stringPortions = stringTotal.split(",");
  var imageString="";
     for(i = 0; i < stringPortions.length; i++){
       imageString += "<img src='/images/" + stringPortions[i] +".png'/>";
       }
  $('.slidepop').html(imageString);
        }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div  class="slidepop"></div>

答案 2 :(得分:-1)

当您使用split方法时,您将获得一个字符串数组作为回报。但是你直接用html标签加入数组。您可以尝试下面的内容,我在字符串数组的特定索引处加入字符串。

<html>
<head>
<script>
function splitString(stringToSplit, separator) {
var arrayOfStrings = stringToSplit.split(separator);
document.write('<img src="/images/'+ arrayOfStrings[1].join('.png" /><img src="/images/') + '/>');
}
</script>
</head>
<body>
<div  class="slidepop">
<script> splitString(',brickfast,travel insurance,guide,sim cart,tour',',')</script>
</div>   
</body>
</html>`

如果要显示字符串数组中的所有图像,可以像这样遍历所有数组。

    <html>
        <head>
        <script>
        function splitString(stringToSplit, separator) {
        var arrayOfStrings = stringToSplit.split(separator);

        var imagesHtml = '';
        for(var i = 0; i < arrayOfStrings.length; i++){
            if(arrayOfStrings[i] !== ''){
               imagesHtml = imagesHtml + '<img src="/images/' + arrayOfStrings[i] + '.png" />'
            }
        }
        var newDiv = $("<div></div>");
        newDiv.append(imagesHtml);
        $(".slidepop").append(newDiv);
}
        </script>
        </head>
        <body>
        <div  class="slidepop">
        <script> splitString(',brickfast,travel insurance,guide,sim cart,tour',',')</script>
        </div>   
        </body>
        </html>`