如何从HTML元素执行javascript函数并发送该元素名称而不特别使用其名称?

时间:2015-06-09 07:19:34

标签: javascript jquery html

如果对这个问题有答案,我就找不到了。

我在JavaScript中有以下功能,需要能够一遍又一遍地重复使用。



function ParentService_load(_Object) {
    $(_Object.parent.parent).jqxDropDownButton({
        ...
    });
    $(_Object).jqxGrid({
        ...
    });
    $(_Object).bind('rowselect', function(event) {
        ...
        var row = $(_Object).jqxGrid('getrowdata', args.rowindex);
        ...
        $(_Object.parent.parent).jqxDropDownButton('setContent', dropDownContent);
        if (row["servicename"].toString().toLowerCase() === "new") {
            $(_Object.parent.parent).jqxDropDownButton('close');
            ...
        }
    });
}

<div id="jqxParentServiceDropdownButton">
    <div id='jqxParentServiceDropdownWidget' style="font-size: 13px; font-family: Verdana; float: left;">
        <div id="jqxParentServiceDropdownGrid" onload="ParentService_load(this);"></div>
    </div>
</div>
&#13;
&#13;
&#13;

我还没有找到一种从元素调用javascript或jquery函数的明确方法,并让该函数使用这些元素&#39;名字等等......那我怎么做到这一点?

2 个答案:

答案 0 :(得分:1)

如果按“名称”表示id,则在您的函数中,您可以将其作为_Object.id进行访问。因为您在this中传递onload=...(但请参见下文),这是对事件发生的元素的引用。在函数中,您接收的参数为_Object,因此您可以使用_Object上的属性来访问有关该元素的信息,包括其id

但请注意,div元素没有load个事件。此外,div元素没有parent属性;你可能会想到parentNode

答案 1 :(得分:0)

我不完全确定你在问什么,所以这里有一些关于从函数中返回嵌入HTML的值的例子;

$(document).ready(function(){
  $(".lw").click(function() {
    alert("Class:" + $(this).attr("class") + 
          "\nID:" + $(this).attr("id") + 
          "\nData:" + $(this).data("test") + 
          "\nName:" + $(this).attr("name") + 
          "\nTagname:" + $(this).prop("tagName"));
    alert($(this).parent().prop("tagName"));
  });
});

http://liveweave.com/CZSYqW

单击任一<p>元素会在警告框中返回不同的值。