【问题标题】:JQuery selector does not work in dynamically created content?JQuery 选择器在动态创建的内容中不起作用?
【发布时间】:2018-01-15 17:42:05
【问题描述】:

我正在尝试检索 .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());

});

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

提前致谢!

【问题讨论】:

  • 在OP中添加所有相关代码
  • 并复制/粘贴,而不是图像
  • 另外,div 元素没有val 属性。使用data-val="1202" 然后$('#precio').data('val') 检索它
  • 对不起!刚刚编辑
  • @RoryMcCrossan 有效!我不知道data-val!非常感谢!

标签: javascript jquery html


【解决方案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
});

注意:- 因为&lt;h1&gt;,&lt;h2&gt;..,&lt;div&gt;,&lt;ul&gt;&lt;li&gt;&lt;p&gt;.... 这些元素没有value 属性(以标准方式)。因此,请为他们使用data-attribute 选项,如下所示:-

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

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

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

【讨论】:

  • 谢谢!我解决了这个问题!问题不在于事件委托,而在于属性声明!再次感谢您的反馈
  • 是的!我要等几分钟才能接受!已经完成了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
相关资源
最近更新 更多