通过javascript代码隐藏到jsp元素的可见性

时间:2016-05-18 15:41:43

标签: javascript jquery html css jsp

我有这段jsp代码:

<td class='sellinfo-trgt'>${sellthroughLabel}: <span></span></td>

如果我想显示或不显示 td 元素和 span 内容的内容,我会通过js进行选择。

这是js代码:

var oSellthrough = $($(oStore).find(".sellinfo-trgt")).find("span").toArray()[0];
var sSellthrough = SELLTHROUGH_NOT_AVAILABLE_MESSAGE;

if(sSellthrough == SELLTHROUGH_NOT_AVAILABLE_MESSAGE){
    $($(oStore).find(".sellinfo-trgt")).textContent = "";
} else {
    oSellthrough.textContent = sSellthrough;
}

我想将 td 元素的所有内容设置为空字符串,不仅是span内容,还包括 $ {sellthroughLabel}

我该怎么做?

$($(oStore).find(".sellinfo-trgt")).textContent = "";

似乎不起作用......

1 个答案:

答案 0 :(得分:2)

如果我理解正确并且您想要隐藏整个<td>内容,包括内部<span>,您可以更轻松地调整元素可见性或显示css属性。你也不会以这种方式丢失原创内容。

可见性:会隐藏元素,但以前的空间仍然存在。

显示:将此设置为&#39;无&#39;将完全隐藏元素,就好像它永远不存在一样。

由于您似乎正在使用Jquery,最简单的方法是使用其hide()和show()函数。这些就好像显示设置为无。它甚至可以记住以前的值,所以一旦你显示()它们,它们就会回到“内联”或“阻止”状态。或根据需要的任何先前值。

$(your_td_element).hide(); //To hide
$(your_td_element).show(); //To display again

我不认为有一个函数来设置Jquery的可见性,但你可以使用css()直接访问它。

$(your_td_element).css('visibility','hidden'); //To hide
$(your_td_element).css('visibility','');       //To display again

顺便说一句,Jquery确实有一个text()函数,它几乎完成了textContent的工作。

$(your_td_element).text(''); //should delete all inner text.

这会删除你的跨度。与your_td_element.innerHTML = '';相同。这就是为什么我建议使用可见性。但是如果你确定这是你想要做的,那么使用text()而不是textContent就行了。

textContent不起作用,因为$($(oStore).find(".sellinfo-trgt")).textContent = "";正在尝试访问Jquery包装对象上的textContent属性。此属性未定义(它不存在),但由于您分配给它,因此不会出错。因为它是Jquery包装的,所以正确的做法是使用上面提到的text(),就像$($(oStore).find(".sellinfo-trgt")).text("");一样。