JQuery选择器在动态创建的内容中不起作用?

时间:2017-08-08 08:42:15

标签: javascript jquery html

我正在尝试检索.html()。val()或html元素中的其他内容,这是我的html代码(动态生成):

<div class="presupuesto"><h2 class="precio" id="precio" value="1202">1.202,00 €</h2>
  

我需要.val()属性!

使用我想要显示的JQuery和JavaScript,选择了哪个选项,然后显示有关h2标签(价格)的信息。这是我的JS代码:

$('select').on('change', function (e) {

    var optionSelected = $("option:selected", this);
    var valueSelected = this.value;
    alert(valueSelected);
    alert(("#precio").val());

});
  

第一个警报(valueSelected)运行良好,但第二个触发TypeError

提前致谢!

1 个答案:

答案 0 :(得分:1)

正如你所说,你有动态生成的元素。然后你需要使用event-delegation: -

$(document).on('change','select',function(){
  alert($(this).val()); // to get select value
  alert($('#precio').attr('value')); // try to use data-attribute which is standered way
});

注意: - 由于<h1>,<h2>..,<div>,<ul><li><p>....这些元素没有value属性(以standered方式)。因此,请使用data-attribute选项,如下所示: -

<h2 class="precio" id="precio" data-value="1202">1.202,00 €</h2>

然后更改jQuery代码,如下所示: -

 alert($('#precio').data('value'));