मैंने ASPX में एक तालिका बनाई है। मैं आवश्यकता के आधार पर स्तंभों में से एक को छिपाना चाहता हूं, लेकिन visible
HTML तालिका भवन में कोई विशेषता नहीं है । मैं अपनी समस्या कैसे हल कर सकता हूं?
मैंने ASPX में एक तालिका बनाई है। मैं आवश्यकता के आधार पर स्तंभों में से एक को छिपाना चाहता हूं, लेकिन visible
HTML तालिका भवन में कोई विशेषता नहीं है । मैं अपनी समस्या कैसे हल कर सकता हूं?
जवाबों:
आपको इस उद्देश्य के लिए स्टाइल शीट का उपयोग करने की आवश्यकता है।
<td style="display:none;">
td:first-child { display:none; }
आप nth-child
संपूर्ण कॉलम छिपाने के लिए CSS चयनकर्ता का उपयोग कर सकते हैं :
#myTable tr > *:nth-child(2) {
display: none;
}
इस धारणा के तहत यह काम करता है कि स्तंभ एन के एक सेल (यह एक हो th
या td
) हमेशा अपने पंक्ति के वां बच्चा तत्व है।
यदि आप चाहते हैं कि कॉलम संख्या गतिशील हो, तो आप ऐसा कर सकते हैं querySelectorAll
या इसी तरह की कार्यक्षमता प्रस्तुत करने वाले किसी भी ढांचे का उपयोग कर सकते हैं jQuery
:
$('#myTable tr > *:nth-child(2)').hide();
(JQuery समाधान विरासत ब्राउज़रnth-child
पर भी काम करता है जो समर्थन नहीं करता है )।
आप भी उपयोग कर सकते हैं:
<td style="visibility:hidden;">
or
<td style="visibility:collapse;">
उन दोनों के बीच का अंतर जो "छुपा" है सेल को छुपाता है लेकिन यह स्थान रखता है लेकिन "ढहने" के साथ अंतरिक्ष को प्रदर्शन की तरह नहीं रखा जाता है: कोई नहीं। संपूर्ण स्तंभ या पंक्ति को छिपाते समय यह महत्वपूर्ण है।
visibility: collapse
विशेष रूप से सेल को दिखाने / छुपाने के लिए डिज़ाइन किया गया है, क्योंकि सेल चौड़ाई / ऊंचाई को इस और के बीच पुनर्गणना करते समय अंतर होता है display:none
। देखें डेवलपर.
कोस का उत्तर लगभग सही है, लेकिन इसके हानिकारक प्रभाव हो सकते हैं। यह अधिक सही है:
#myTable tr td:nth-child(1), #myTable th:nth-child(1) {
display: none;
}
सीएसएस (कैस्केडिंग स्टाइल शीट्स) अपने सभी बच्चों के लिए विशेषताओं को कैस्केड करेगी । इसका मतलब है कि प्रत्येक *:nth-child(1)
के पहले td
को छिपाएगा tr
और सभी td
बच्चों के पहले तत्व को छिपाएगा । यदि आपकी td
किसी चीज में बटन, आइकन, इनपुट या चयन जैसी चीजें हैं, तो पहले वाला छिपा होगा (woops)।
यहां तक कि अगर आपके पास वर्तमान में ऐसी चीजें नहीं हैं, जो छिपी होंगी, तो सड़क पर अपनी हताशा की छवि बनाएं यदि आपको एक जोड़ने की आवश्यकता है। अपने भविष्य को उस तरह से सजा मत करो, जो डिबग करने के लिए एक दर्द होने जा रहा है!
मेरा उत्तर केवल आपके अन्य तत्वों को सुरक्षित रखने में पहले td
और th
सभी tr
को छिपाएगा #myTable
।
बूटस्ट्रैप लोग .hidden
कक्षा का उपयोग करते हैं <td>
।
आप कॉल तत्व https://developer.mozilla.org/en/docs/Web/HTML/lementman/col का उपयोग करके एक कॉलम भी छिपा सकते हैं
तालिका में दूसरा कॉलम छिपाने के लिए:
<table>
<col />
<col style="visibility:collapse"/>
<tr><td>visible</td><td>hidden</td></tr>
<tr><td>visible</td><td>hidden</td></tr>
ज्ञात समस्याएँ: यह Google Chrome में काम नहीं करेगा। कृपया https://bugs.chromium.org/p/chromium/issues/detail?id=1717167 पर बग के लिए वोट करें
<style>
.hideFullColumn tr > .hidecol
{
display:none;
}
</style>
तालिका में .hideFullColumn और th .hidecol का उपयोग करें। आपको व्यक्तिगत रूप से td में कक्षा जोड़ने की आवश्यकता नहीं है क्योंकि यह समस्या होगी क्योंकि सूचकांक प्रत्येक td के दिमाग में नहीं हो सकता है।
आप यह भी कर सकते हैं कि क्या बनाम देव प्रोग्राम को जावास्क्रिप्ट के साथ शैली को असाइन करके बताते हैं कि कॉलम के माध्यम से पुनरावृत्ति करके और उस शैली के लिए एक विशिष्ट इंडेक्स पर td तत्व सेट करें।
<!doctype html>
<html lang="en">
<head>
<style id="myStyleSheet">
...
</style>
var column = 3;
var styleSheet = document.getElementById("myStyleSheet").sheet;
var rule = "table tr td:nth-child("+ column +"),table th:nth-child("+ column +")
{display: none}";
styleSheet.insertRule(rule);