我有以下按钮设置:
<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搜索,但找不到答案。
答案 0 :(得分:3)
<强>描述强>
您只需要包装该元素即可访问DOM。
<button type="button" onclick="fnToggleBox(AddcategoryDiv)">Add Category</button>
<强>解决方案强>
我相信你只想.toggle
能见度。您可以通过jQuery中的.toggle()
函数执行此操作。
像这样:
function fnToggleBox(element)
{
$(element).toggle();
}
这不值得为函数包装器编写,但享受!
<强>文档强>
描述:显示或隐藏匹配的元素 .toggle([duration] [,complete])
答案 1 :(得分:2)
jquery在<?php echo "<div class='result_text'>
函数中包含dom元素,
一旦这些dom元素被包装,你就会获得所有那些漂亮的jquery方法,但是底层的dom元素仍然存在,
你很接近,只需将节点传递给$ Jquery
函数作为参数:
$
&#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;