使用jQuery将函数附加到DOM对象

5vf7fwbs  于 2023-08-04  发布在  jQuery
关注(0)|答案(2)|浏览(129)

我想在网页中将函数附加到现有的DOM元素。有没有一种方法可以使用jQuery选择器来创建一组DOM元素并向它们附加一个函数?
我现在用JavaScript这样做:

var domObject;
    domObject = document.getElementById('WeatherObservation.Temperature');
    if (domObject) {
        domObject.format = function (val) {
            var fTemp = val * 9 / 5 + 32;
            var fDisp = Math.round((fTemp + Number.EPSILON) * 10) / 10;
            this.innerText = fDisp.toString();
        }
    };

字符串

xvw2m8pv

xvw2m8pv1#

您可以使用.data()将一个命名值与所有选定的元素相关联,该值可以是一个函数。
要引用元素本身,请将此函数设置为一个闭包,以捕获它所附加的元素。

$(".classname").each(function(i, element) {
  $(element).data("format", function(val) {
    var fTemp = val * 9 / 5 + 32;
    var fDisp = Math.round((fTemp + Number.EPSILON) * 10) / 10;
    element.innerText = fDisp.toString();
  });
});

字符串
您可以稍后使用$("selector").data("format")(someVal)调用该函数

6qqygrtg

6qqygrtg2#

您可以使用.data()方法设置自定义方法。

范例:

$('.myClass').data({
  'format': (function() {
    var fTemp = val * 9 / 5 + 32;
    var fDisp = Math.round((fTemp + Number.EPSILON) * 10) / 10;
    this.innerText = fDisp.toString();
  })
});

// Call this later:

$(mySelector).data('format')(...arguments);

字符串
也可以通过.trigger()方法设置自定义事件。请注意,事件不能返回值,因此如果需要返回值,请不要使用此方法。

范例:

$('.myClass').trigger({
  'format': (function() {
    var fTemp = val * 9 / 5 + 32;
    var fDisp = Math.round((fTemp + Number.EPSILON) * 10) / 10;
    this.innerText = fDisp.toString();
  })
});

// Trigger the event:

$(mySelector).trigger('format');

相关问题