我一直在尋找這個地方,似乎無法找到一個有效的anwser。我擁有的是帶有箭頭和按鈕的滑塊,當單擊箭頭或按鈕時,該函數抓取它用於確定下一張幻燈片的data-cs屬性。如何在JavaScript中將數據屬性值轉換爲整數?
的HTML
<div id="arrowleft" class="sliderbtns flip" data-sc="prev"></div>
<div id="arrowright" class="sliderbtns" data-sc="next"></div>
<div id="buttons" class="sliderbtns">
<div class="selectedbtn sliderbtns" id="button1" data-sc="1"></div>
<div class="button sliderbtns" data-sc="2"></div>
</div>
在JS的JavaScript
$(".sliderbtns").click(function() {
var button_data = $(this).attr('data-sc');
myslider(button_data);
});
功能
function myslider(position) {
if (position == "next" && (currentslide == slidecount)) {
position = 1;
} else if (position == "next") {
position = currentslide + 1;
} else if ((position == "prev") && (currentslide == 1)){
position = slidecount;
} else if ((position == "prev")) {
position = position - 1;
} else {
// position must then eqauls some integer from the data-sc attribute
position = parseInt(position);
alert (position); // alerts properly the first time
var out_slide = "Slide" + currentslide + "Out";
var next_slide = "Slide" + position;
alert(out_slide); //these work fine the first time
alert(next_slide);
window[next_slide]();
window[out_slide]();
// later on in the slide currentslide becomes position after this it returns value of Nan
setTimeout(function() {
currentslide = position;
alert("this is the current slide position" + currentslide);
}, 2000);
/* ommited code */
}
}
箭頭正常工作,如果我只需要點擊箭頭,但是當我點擊一個按鈕,它會繼續前進到下一張幻燈片,但沒有任何按鈕不起作用,並顯示當前位置爲NaN,我已經嘗試使用Number(position),ToInt和ParseInt以一系列不同的方式將position變量設置爲int,但仍然在currentslide = position之後將其返回爲Nan,並且滑塊不能再找到合適的幻燈片和函數等。 ..如果任何人有任何想法我可能做錯了,如何正確確保它是一個真正的整數,如果這是從數據屬性posimaible,或者可能有其他方式我可以將該數據作爲和int可能是點擊箭頭或按鈕即可獲得。非常感謝任何幫助!
['.data'](https://api.jquery.com/data/#data2)似乎會返回數值。不需要'parseInt' – Cerbrus
你也可以使用'$(this).data('sc')* 1'; –
當使用'parseInt' allways時添加'radix'。 'parsetInt(var,10)'解析到基數爲10. – phylax