从另一个选择框中选择带有Li元素的Box

时间:2013-02-12 15:26:48

标签: jquery drop-down-menu

好的,我知道我的标题不是很有用。让我解释一下。

我正试图用jQuery做一个页面。在他们的页面(旧页面)上,有一个选择下拉菜单,我将其带到我的(新)页面。他们的选择下拉列表使用带有li元素的ul,而我的选择元素使用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%的时间。

但是,如果我选择列表中的最后一个选项,则会发生这种情况。它选择它,这很好,但如果我然后从列表中选择另一个问题,它会开始选择我想要的那个问题的正上方,并继续这样做直到我完全重新加载页面。如果我选择下拉列表中的最后一个元素,则会发生这种情况。

我一直在讨论这个问题并且没有找到答案。有人能提供一些见解吗?感谢。

编辑:我终于找到了问题。在他们的代码中,当单击发生时,每个li元素所具有的.rcbItem类都被.rcbHover类覆盖。所以为了解决这个问题,我基本上将.rcbItem更改为jQuery('.rcbList li')....,现在它完美无缺。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你确定这个没问题吗?

jQuery('#ctl00_ContentPlaceHolder1_ddlQuestion_Arrow')[0].click();

你不是在jQuery上触发jQuery的.click,而是在DOM元素上触发