0

次の形式のxmlファイルがあります

<Products>
<Product id="1">
  <ProductName>RegEB-Tote</ProductName>
  <ImageFileName>ToteTank_350g.png</ImageFileName>
</Product>
<Product id="2">
  <ProductName>RegEB-Drum</ProductName>
  <ImageFileName>N/A</ImageFileName>
</Product>
<Product id="3">
  <ProductName>RegEB-5Gal</ProductName>
  <ImageFileName>5Gallon.png </ImageFileName>
</Product>
<Product id="4">
  <ProductName>RegEB-Gal</ProductName>
  <ImageFileName>GalSqueezeBottle.png</ImageFileName>
</Product>

Products id 属性値に基づいて imagefilename を取得しようとしていますが、xml 処理エラーが発生しています

 $(document).ready(function () {
        function getParameterByName(name) {
            name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
            var regexS = "[\\?&]" + name + "=([^&#]*)";
            var regex = new RegExp(regexS);
            var results = regex.exec(window.location.search);
            if (results == null)
                return "";
            else
                return decodeURIComponent(results[1].replace(/\+/g, " "));
        }

        var prodid = getParameterByName("ID");
        var fieldheight = ($('#fld_productDetails').height());

        $.ajax({
                type: "GET",
                url: "OtherDataFiles/ProductImageLookup.xml",
                dataType: "xml",
                success: function (xml) {
                 $(xml).find('Product').each(function () {
                  if ($(this).attr('id').value === prodid)
                     {
                        var filename = $(this).find('ImageFileName').text();

                        $('#fld_productDetailImage').css({ 'height': fieldheight,'url': "../Images/ProductImages/" + filename + "no-repeat center" });
                    }
            });
          },
        error: function() {
          alert("An error occurred while processing XML file.");
       }
    });
    });

prodid 変数と fieldheight 変数は正しい値を取得しています。変数ファイル名は NOT です

4

1 に答える 1

0

$(xml).find の if 部分が正しくなく、背景 css を追加するための構文が間違っていました。正しいコードは次のとおりです。

 if ($(this).attr('id') === prodid) {
                       var filename = $(this).find('ImageFileName').text();
                       $('#fld_productDetailImage').css({ 'height': fieldheight, 'background': "url(../Images/ProductImages/" + filename + ") no-repeat center" });
                    }
于 2013-04-15T00:53:20.653 に答える