Javascript Jquery:每个更改的操作

Javascript Jquery:每个更改的操作,javascript,jquery,Javascript,Jquery,继续从: 我目前正在使用下面的捕获滑块的ID并更改#log的内容。问题是只捕获第一个滑块。我需要在任何滑块更改时执行此操作 我已经尝试在我所有的滑块上使用price的ID,但是这不起作用 $('#price').each(function(index,value){ $(this).bind('slide', function(){ $("#log").prepend('<p>Changed</p>') }); }); $('#price

继续从:

我目前正在使用下面的捕获滑块的ID并更改#log的内容。问题是只捕获第一个滑块。我需要在任何滑块更改时执行此操作

我已经尝试在我所有的滑块上使用price的ID,但是这不起作用

$('#price').each(function(index,value){
    $(this).bind('slide', function(){
        $("#log").prepend('<p>Changed</p>')
    });
});
$('#price')。每个(函数(索引、值){
$(this.bind('slide',function()){
$(“#log”).prepend(“已更改”

”) }); });
$(“#price”)
是id,页面包含一个重复id。您需要使用class

这不起作用的原因是JavaScript符合HTML规范,并且HTML规范声明

您不允许有两个
id=“price”
的元素。因此,JavaScript在找到第一个匹配项后将停止搜索。您的
.each()
循环将只循环一次,而不管在第一次循环之后有多少
#price
元素

要解决此问题,请改用类。例如:

<div class="price">...</div>
<div class="price">...</div>
<div class="price">...</div>

您还需要将
#log
元素更改为使用类。

在多个元素上使用相同的ID是个坏主意。改用类。这不仅是个坏主意,而且违反了html规范。改为使用类名。我已经在那里说过同样的话。他在一小时内发布了相同的问题。
$(“#price”)
选择器将只为您提供与之匹配的第一个元素。如果需要所有元素,请使用
$('[id=“price”]')
。但是不要。使用类代替PSR对另一个问题的回答。
$('.price').each(function(index,value) { ... });