使用jquery从json更改img src

时间:2017-04-05 08:49:23

标签: javascript jquery json

我有一个包含此数据的JSON文件(忽略内容):

[{
    "autonomia_id": "01",
    "nombre": "Andalucía",
    "img": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Flag_of_Cambodia.svg/200px-Flag_of_Cambodia.svg.png"
},
{
    "autonomia_id": "02",
    "nombre": "Aragón",
    "img": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Flag_of_Cambodia.svg/200px-Flag_of_Cambodia.svg.png"
},
{
    "autonomia_id": "03",
    "nombre": "Asturias, Principado de",
    "img": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Flag_of_Cambodia.svg/200px-Flag_of_Cambodia.svg.png"
}]

我想根据您在select中选择的内容更改html上的img src。

<!-- MODAL SELECCION COMUNIDAD AUTONOMA -->
<div id="modal" class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Selecciona la comunidad autónoma desde la que visitas esta web</h4>
        </div>
        <div class="modal-body">
            <select class="form-control" id="comunidades">
          <option selected value="0">Selecciona una comunidad autónoma...</option>
      </select>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn-lg btn-info" id="aceptar">Aceptar</button>
        </div>
    </div>

</div>
<!-- /MODAL SELECCION COMUNIDAD AUTONOMA/ -->



<!-- MOSTRAR COMUNIDAD -->
<div id="comunidadRepresentando" class="media">
    <div class="media-left">
        <img id="imgComunidad" class="media-object" src="src/imgcomunidad.png" alt="comunidad">
    </div>
    <div class="media-body">
        <h3 id="nombreComunidad" class="media-heading">Nombre comunidad</h3>
        <p id="descripcionComunidad">Si quieres ver una pequeña descripción de un comunidad autónoma, selecciónala en el panel de al lado.</p>
    </div>
</div>

使用jquery或纯javascript可以做什么?

我用.text()尝试了一次,但它只显示了我的名字,但没有显示img网址。

修改 添加一些javascript和jquery代码:

这让我成为&#34; nombre&#34; json领域正确地在#nombreComunidad

function ponerNombreComunidad() {
    $("#comunidades")
        .change(function () {
            var str = "";
            $("select option:selected").each(function () {
                str += JSON.parse();
            });
            $("#nombreComunidad").text(str);
        })
        .trigger("change");
}

但这并没有给我正确的img src:

function cambiarImgComunidad() {

     $("#comunidades")
            .change(function () {


                var str = "";
                $("select option:selected").each(function () {
                    str += $(this).text();
                });
                $("#imgComunidad").attr("src", str);
            })
            .trigger("change");
    }

1 个答案:

答案 0 :(得分:1)

&#13;
&#13;
var json = [{"autonomia_id": "01","nombre": "Andalucía","img": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Flag_of_Cambodia.svg/200px-Flag_of_Cambodia.svg.png"}, {"autonomia_id": "02","nombre": "Aragón","img": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Flag_of_Cambodia.svg/200px-Flag_of_Cambodia.svg.png"}, {"autonomia_id": "03","nombre": "Asturias, Principado de","img": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Flag_of_Cambodia.svg/200px-Flag_of_Cambodia.svg.png"}],
    selectOptions = '';

// Create the select options
json.forEach(function (el) {
  selectOptions += '<option value="' + el.autonomia_id + '">' + el.nombre + '</option>';
});

// Populate select and set event handler
$('#comunidades')
  .append(selectOptions)
  .on('change', function(event) {
    // find selected element by "autonomia_id"
    var selectedEl = json.find(function (el) {
      return event.target.value === el.autonomia_id;
    });
    
    if (selectedEl) {
      $('#nombreComunidad').text(selectedEl.nombre);
      $('#descripcionComunidad').text('Description goes here...');
      $('#imgComunidad').attr('src', selectedEl.img);
    }
  });
&#13;
#selectedComunidad {display: none;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- MODAL SELECCION COMUNIDAD AUTONOMA -->
<div id="modal" class="modal-dialog">
  <div class="modal-content">
    <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal">&times;</button>
      <h4 class="modal-title">Selecciona la comunidad autónoma desde la que visitas esta web</h4>
    </div>
    <div class="modal-body">
      <select class="form-control" id="comunidades">
          <option selected value="0">Selecciona una comunidad autónoma...</option>
      </select>
    </div>
    <div class="modal-footer">
      <button type="button" class="btn-lg btn-info" id="aceptar">Aceptar</button>
    </div>
  </div>
</div>
<!-- /MODAL SELECCION COMUNIDAD AUTONOMA/ -->



<!-- MOSTRAR COMUNIDAD -->
<div id="comunidadRepresentando" class="media">
  <div class="media-body">
    <h3 id="nombreComunidad" class="media-heading">Nombre comunidad</h3>
    <p id="descripcionComunidad">Si quieres ver una pequeña descripción de un comunidad autónoma, selecciónala en el panel de al lado.</p>
    <div class="media-left">
      <img id="imgComunidad" class="media-object" alt="comunidad">
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

请注意,所有标志都相同..而且您还可以在json中添加descripcionComunidad。希望它有所帮助!