好的,我知道我的標題不是很豐富。讓我解釋。從另一個選擇框中選擇帶有Li元素的框
有一個頁面,我想用jQuery來完成。在他們的頁面(舊頁面)上,有一個選擇的下拉菜單,我將它帶到我的(新)頁面。他們的選擇下拉列表使用ul元素和li元素,而我的select使用選項元素。
以下是我有:
var totalQuestions = jQuery('.rcbItem').length; //get the total elements in theirs
for (x = 0; x < totalQuestions; x++) //for loop to create the dropdown on mine
{
var questionText = jQuery('.rcbItem:eq(' + x + ')').html();
jQuery('#selectQuestion').append(jQuery(document.createElement('option')).attr(
{
'value' : "Question" + x
}).html(questionText));
}
var strQuestion = jQuery('#ctl00_ContentPlaceHolder1_ddlQuestion_Input').val(); //gets the value currently in THEIR select field
var objQuestionNext = jQuery("#selectQuestion").find("option:contains('" + strQuestion + "')");
objQuestionNext.attr(
{
selected : 'true'
}); //finds the question in MY list that matches THEIR select field, and then selects that one
這是一個運行每次我從我的下拉列表中選擇一個問題時的代碼:
jQuery('#selectQuestion').change(function()
{
strQuestion = jQuery('#selectQuestion :selected').val(); //get the value of "option", which is Question + x
strAnswer = jQuery('#txtQuestionAnswer').val();
intQuestionNumber = strQuestion.substr(8, 2).trim(); //gets the number (so Question + x becomes x)
jQuery('#ctl00_ContentPlaceHolder1_ddlQuestion_Arrow')[0].click(); //I click THEIR dropdown menu
jQuery('.rcbItem:eq(' + (intQuestionNumber-1) + ')').click(); //Select THEIR li element that matches MINE)
jQuery('#ctl00_ContentPlaceHolder1_ctbAnswer').val(strAnswer);
});
這工作90%的時間。
但是,如果我選擇列表中最後一個選項,則會發生這種情況。它選擇它,這很好,但是如果我然後從列表中選擇另一個問題,它會開始選擇一個我想要的,然後繼續這樣做,直到我完全重新加載頁面。這隻有在我選擇我的下拉列表中最後一個元素時纔會發生。
我一直在關注這件事,並沒有找到答案。誰能提供一些見解?謝謝。
編輯:我終於找到了問題。在他們的代碼中,當點擊發生時,每個元素所擁有的.rcbItem類都被.rcbHover類覆蓋。所以要解決它,我基本上改變.rcbItem爲jQuery('.rcbList li')....
,它現在完美。
謝謝你的幫助球員。
你嘗試過調試它,看看它是怎麼回事了?你能在http://www.jsfiddle.net上創建一個演示嗎? – 2013-02-12 15:31:03
至少向我們展示一些HTML標記會有所幫助。 – kidwon 2013-02-12 15:32:24
不幸的是,我沒有任何HTML給你。我在頁面上唯一觸及的是Javascript。他們的東西在ASP中被嚴格編碼,而不是HTML,我不能碰它們,因爲它是他們的代碼。 – snowfi6916 2013-02-12 15:36:33