2012-10-14 18 views
13

selection.text(' ') का उपयोग करके   को जोड़ने के लिए विशेष वर्णों को रूपांतरित करने के लिए प्रतीत होता है, इसलिए यह एक स्थान की बजाय वास्तविक टेक्स्ट प्रस्तुत करता है। क्या text() मेरे चयन से चयन करने पर चयनों को रोकने का कोई तरीका है? संदर्भ के लिए, यह एक तालिका कक्ष है जो चयन में कुछ तत्वों के लिए खाली है, और मुझे वहां की जगह चाहिए ताकि कोशिकाएं ठीक से प्रस्तुत हों।d3.js select.text() विधि

उत्तर

7
d3_selectionPrototype.text = function(value) { 
    return arguments.length < 1 ? this.node().textContent : this.each(typeof value === "function" ? function() { 
     var v = value.apply(this, arguments); 
     this.textContent = v == null ? "" : v; 
    } : value == null ? function() { 
     this.textContent = ""; 
    } : function() { 
     this.textContent = value; 
    }); 
    }; 

यहां महत्वपूर्ण पंक्ति यह है कि चयन पर .text() को कॉल करने से प्रत्येक तत्व पर टेक्स्ट सामग्री सामग्री सेट हो जाएगी। तो अपने मामले में क्या करने के लिए सही बात

selection.text(' '); 

तो का उपयोग आप रिक्त स्थान का उपयोग करने के तो आप बस है पाठ में रिक्त स्थान का उपयोग करने के, नहीं इनकोडिंग रिक्त स्थान html चाहते हैं। यदि आप एचटीएमएल एन्कोडेड वर्णों का उपयोग करना चाहते हैं तो आपको सामग्री को आंतरिक HTML के रूप में देखना होगा।

selection.html('&nbsp;'); 
30

एक HTML इकाई के बजाय एक जावास्क्रिप्ट यूनिकोड भागने का उपयोग करें। HTML में &nbsp; यूनिकोड वर्ण U + 00A0 तो

selection.text('\u00A0') 

आप क्या चाहते हैं क्या करना चाहिए दर्शाता है।

+1

चयन.टेक्स्ट ('\ u00A0') का चयन select.text ('') के बजाय कई उद्देश्यों के लिए महत्वपूर्ण होगा जिनके लिए वास्तविक स्थान भरना आवश्यक है; पूर्व में एक सीमित बाउंडिंग बॉक्स होगा, बाद वाला नहीं होगा। – Andy

+1

क्या किसी को पता है कि यूनिकोड क्यों काम करता है लेकिन HTML इकाइयां नहीं? बस उत्सुक ... – mike

+1

@ माइक यह निर्भर करता है। यदि आपके पास HTML फ़ाइल में जावास्क्रिप्ट इनलाइन का एक टुकड़ा है तो एक इकाई _might_ कार्य, क्योंकि जावास्क्रिप्ट इंजन इकाई के बजाय इकाई के विस्तार को देखता है, लेकिन यदि आपके पास अपनी फ़ाइल में जावास्क्रिप्ट है तो 'select.text ('   ')' पाठ को एम्पर्सेंड, nbsp, अर्धविराम में सेट करेगा। –

 संबंधित मुद्दे