如何访问通过JavaScript函数

时间:2016-04-11 15:12:31

标签: javascript jquery

我有以下按钮设置:

<div class="BlogManagementDiv">
     <button type="button" onclick="fnToggleBox(AddcategoryDiv)">Add Category</button>                                                    
        <div id="AddcategoryDiv" class="BlogManagementcontainer">
...
        </div>
</div> 

请注意onclick执行此操作:

fnToggleBox(AddcategoryDiv)

传递给下面div的引用:

AddcategoryDiv

然后我像这样访问函数中的元素:

    function fnToggleBox(element) 
    {
        if (!$('#'+element.id).is(":visible")) {
            $('#' + element.id).show();
        }
        else {
            $('#' + element.id).hide();
        }
    }

我可以看到完全荒谬,因为它已经有了元素,并且没有必要以这种方式访问​​它。

我的问题是,如何使用JQuery正确访问此变量。

我知道如何使用JavaScript,但我正在尝试使用JQuery。

我试过了:

function fnToggleBox(element) 
    {
        if (!element).is(":visible")) {
            element.show();
        }
        else {
            element.hide();
        }
    }

function fnToggleBox(element) 
    {
        if (!$element).is(":visible")) {
            $element.show();
        }
        else {
            $element.hide();
        }
    }

但它们不起作用。

我用Google搜索,但找不到答案。

2 个答案:

答案 0 :(得分:3)

<强>描述
您只需要包装该元素即可访问DOM。

<button type="button" onclick="fnToggleBox(AddcategoryDiv)">Add Category</button>                                                    

<强>解决方案
我相信你只想.toggle能见度。您可以通过jQuery中的.toggle()函数执行此操作。

像这样:

function fnToggleBox(element) 
{
  $(element).toggle();
}

这不值得为函数包装器编写,但享受!

<强>文档

http://api.jquery.com/toggle/

  

描述:显示或隐藏匹配的元素   .toggle([duration] [,complete])

答案 1 :(得分:2)

jquery在<?php echo "<div class='result_text'>函数中包含dom元素, 一旦这些dom元素被包装,你就会获得所有那些漂亮的jquery方法,但是底层的dom元素仍然存在,

你很接近,只需将节点传递给$ Jquery函数作为参数:

&#13;
&#13;
$
&#13;
function fnToggleBox(element) {
      console.log(element)
      console.log($(element))
      console.log($('#' + element.id)[0] === element)
      
        if (!$(element).is(":visible")) {
            $(element).show();
        }
        else {
            $(element).hide();
        }
    
    }
&#13;
#AddcategoryDiv{
  height:10px;
  width:10px;
  background:red
  
}
&#13;
&#13;
&#13;