在使用jQuery定义的元素上运行JavaScript函数

时间:2011-06-20 04:58:17

标签: javascript jquery

我不确定我的名字是好的......显示我在陌生的领域。如何根据jQuery函数中调用的元素运行JavaScript函数?

理论值:

<script type="text/javascript">
  $.fillit('video');
</script>

(在页面中显示的视频标签上运行fillit ..可与其他元素互换)

$.fillit = function(){
  this is where it says "run on the tag defined in the jQuery function"
}):

4 个答案:

答案 0 :(得分:1)

$.fn.extend({
    fillit : function(){...}
});

...然后

$('.video').fillit();

修改(评论后)

用其他元素填充dom元素/ html:

var img = document.createElement('img');
img.setAttribute('src', 'somesrc.jpg');

$('.video').append(img);

$('.video').html('<img src="somesrc.jpg"/>');

答案 1 :(得分:0)

您可以按照您所描述的方式进行操作

<script type="text/javascript" language="javascript">
$.fillit = function(content)
{
$("result").html(content);

}

//call function
$.fillit("HELLO WORLD");

</script>

或正如亚历山大刚刚发布的那样,如果你想在所选元素上做到这一点。

我不认为使用$ .func =直接向jquery添加函数是个好主意。如果jQuery添加了一个fillit方法,那么你的方法将与他们的方法发生冲突。

答案 2 :(得分:0)

技术人员,听起来你正在使用一个jquery插件(在你的例子中,一个名为'fillit'的插件),它要求你在一个标签或一系列标签上运行插件。对不起,如果我误解了你的问题。

如果是这种情况,您需要做的只是两件事之一。如果您尝试在HTML页面中的一个非常具体的元素上运行它(其中一个ID为&lt; div id =“myvideo”&gt;&lt; / div&gt;),那么您需要做的就是运行:

$('#myvideo').fillit();
//Notice the '#' symbol, that looks up the element with an id of 'myvideo'

如果你想在一系列元素上运行插件(比如整个文档中的所有&lt; p&gt;标记,你可以运行类似的东西:

$('p').fillit()
//notice no '#', it's just looking up all <p> tags regardless of ID.

查看有关选择器的jQuery文档,以更加具体地了解这些选择器的工作原理:

http://docs.jquery.com/How_jQuery_Works

答案 3 :(得分:0)

有人回答了这个链接:http://docs.jquery.com/Plugins/Authoring

正是我在寻找的东西。声称你的荣誉!

(function( $ ){

  $.fn.fillit = function() {

    this.fadeIn('normal', function(){

      var container = $("<div />").attr("id", "filled")
        .appendTo(container);

    });

  };
})( jQuery );