Я новичок в jQuery. Я увидел программу онлайн и обнаружил, что значение n в функции начинается с 0 до такого количества этого элемента. В приведенном ниже примере элемент img появляется один раз, и jQuery получает этот элемент на основе индекса (который он получает от переменной n в функции), а затем выполняет операцию. Не могли бы вы объяснить, как определяется значение и определено значение n.
<!DOCTYPE html>
<html>
<head>
<script src="/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("img").attr("width",function(n,v){
return v-50;
});
});
});
</script>
</head>
<body>
<img src="img_pulpitrock.jpg" alt="Pulpit Rock" width="284" height="213">
<br>
<button>Decrease image width by 50px</button>
</body>
</html>
Он использует функцию обратного вызова, определенную в jquery. Функциональной сигнатурой является function(index, attr)
Функция, возвращающая значение для установки. это текущий элемент. Получает индексную позицию элемента в наборе и значение старого атрибута в качестве аргументов.
Ваш метод:
$("img").attr("width",function(n,v){
return v-50;
});
предположительно не может работать, потому что v
(текущее значение атрибута) может быть undefined
. В этом случае он вернет NaN
.
Не стесняйтесь играть с этим jsbin
-50
будет преобразовано в число.
undefined
, поэтому имеет смысл вставлять v
в число вручную.