স্ট্রিং হিসাবে নম্বর হিসাবে সিএসএস শীর্ষ মান পেতে?


123

JQuery এ আপনি একটি সংখ্যা হিসাবে পিতামাতার তুলনায় শীর্ষস্থানীয় অবস্থানটি পেতে পারেন, তবে আপনি যদি একটি সিএসএস সেট করা থাকে তবে একটি সংখ্যা হিসাবে সিএসএস শীর্ষ মান পেতে পারেন না px
বলুন আমার নিম্নলিখিত রয়েছে:

#elem{
  position:relative;
  top:10px;
 }
<div>
  Bla text bla this takes op vertical space....
  <div id='elem'>bla</div>
</div>
$('#elem').position().top; //Returns the number (10+(the vertical space took by the text))
$('#elem').css('top'); //Returns the string '10px'

তবে আমি সংখ্যা হিসাবে সিএসএস শীর্ষ সম্পত্তি রাখতে চাই 10
কেউ কীভাবে এটি অর্জন করবে?

উত্তর:


213

স্ট্রিংটিকে একটি সংখ্যায় রূপান্তর করতে আপনি পার্সেন্ট () ফাংশনটি ব্যবহার করতে পারেন, যেমন:

parseInt($('#elem').css('top'));

আপডেট: (বেনের পরামর্শ অনুসারে): আপনার মূলটিও দেওয়া উচিত:

parseInt($('#elem').css('top'), 10);

এটি দশমিক সংখ্যা হিসাবে পার্স করার জন্য জোর করে, অন্যথায় '0' দিয়ে শুরু হওয়া স্ট্রিংগুলি অষ্টাল সংখ্যা হিসাবে পার্স করা হতে পারে (ব্যবহৃত ব্রাউজারের উপর নির্ভর করে)।


57
আপনার মূলটিও দেওয়া উচিত: পার্সেন্ট (# ('# এলিম')। সিএসএস ('শীর্ষ'), 10); এটিকে বেস 10 হিসাবে বিশ্লেষণে বাধ্য করুন, অন্যথায় '0' দিয়ে শুরু হওয়া স্ট্রিংগুলি বেস 8 তে পার্স করা হবে
বেন

3
এটি যদিও ভাসমান হতে পারে তাই পার্সফ্লোট ব্যবহার করা আরও ভাল।
ভেসেভলড গোলভানভ

25

M4N এর উত্তরের উপর ভিত্তি করে একটি jQuery প্লাগইন

jQuery.fn.cssNumber = function(prop){
    var v = parseInt(this.css(prop),10);
    return isNaN(v) ? 0 : v;
};

সুতরাং আপনি কেবল সংখ্যাটি পেতে এই পদ্ধতিটি ব্যবহার করেন

$("#logo").cssNumber("top")

13

ইভান ক্যাসেলেলানোসের জবাব (যা এম 4 এন এর উত্তরের উপর ভিত্তি করে ছিল) এর উপর ভিত্তি করে কিছুটা বেশি ব্যবহারিক / দক্ষ প্লাগইন। ব্যবহারের || 0মাধ্যমে পরীক্ষার পদক্ষেপ ছাড়াই নানকে 0 তে রূপান্তর করা হবে।

আমি উদ্দিষ্ট ব্যবহারের জন্য ভাসা এবং প্রকরণের বৈচিত্রগুলিও সরবরাহ করেছি:

jQuery.fn.cssInt = function (prop) {
    return parseInt(this.css(prop), 10) || 0;
};

jQuery.fn.cssFloat = function (prop) {
    return parseFloat(this.css(prop)) || 0;
};

ব্যবহার:

$('#elem').cssInt('top');    // e.g. returns 123 as an int
$('#elem').cssFloat('top');  // e.g. Returns 123.45 as a float

Http://jsfiddle.net/TrueBlueAussie/E5LTu/ এ টেস্ট ফ্রিডল


দেখে মনে হয় যে কেউ হয় সবসময় সিএসএসফ্লোট ব্যবহার করা উচিত বা বিবেচনা করা উচিত যে সিএসএসটি 25.9999999px থেকে 25 এর মতো একটি মূল্য ছাঁটাই করবে।
জাস্টিংর্ডন

1
@ অ্যাডজাস্টিংডন: এটি কোন আন্তঃসংযোগের জন্য সঠিক সংখ্যার কাটছাঁটি আচরণ, সুতরাং এটি সত্যই মূল্যটির প্রয়োজনীয় ব্যবহারে নেমে আসে।
কোডিং হয়ে গেছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.