将javascript函数转换为jquery

时间:2012-01-25 05:38:14

标签: javascript jquery

我有一个JavaScript函数,它是从这个函数设置下拉和文本框,我想把这个函数转换成jQuery,请帮助。

function setDDls(strCity, strState, strCountry) {
    $(txtCity).val(strCity);
    $(ddlState).val(strState);
    $(ddlCountry).val(strCountry);
    $("#overlay .close").click();
    return false;

    txtCitySearch = document.getElementById("<%= txtCity.ClientID %>");
    ddlStateSearch = document.getElementById("<%= ddlState.ClientID %>");
    ddlCountrySearch = document.getElementById("<%= ddlCountry.ClientID %>");
    txtCitySearch.value = strCity;

    ddlStateSearch.selectedIndex = 0

    for (i = 0; i < ddlStateSearch.options.length; i++) {

        if (ddlState.options(i).text.toUpperCase() == strState.toString().toUpperCase()) {
            ddlStateSearch.selectedIndex = i;
            break;
        }
    }

    ddlCountrySearch.selectedIndex = 0;
    for (i = 0; i < ddlCountrySearch.options.length; i++) {
        if (ddlCountrySearch.options(i).text.toUpperCase() == strCountry.toString().toUpperCase()) {
            ddlCountrySearch.selectedIndex = i;
            break;
        }
    }
    $("#overlay .close").click();
    return false;
}

2 个答案:

答案 0 :(得分:1)

由于return false,您的功能与

相同
function setDDls(strCity, strState, strCountry) {
         $(txtCity).val(strCity);
         $(ddlState).val(strState);
         $(ddlCountry).val(strCountry);
         $("#overlay .close").click();
         return false;
}

答案 1 :(得分:0)

我假设函数开头显示的位是你当前尝试使用jQuery来执行函数的后半部分的操作吗?如果是这样,主要问题只是你没有设置jQuery选择器。试试这个:

function setDDls(strCity, strState, strCountry) {
   $("#<%= txtCity.ClientID %>").val(strCity);
   $("#<%= ddlState.ClientID %>").val(strState);
   $("#<%= ddlCountry.ClientID %>").val(strCountry);
   $("#overlay .close").click();
   return false;
}

在jQuery中,就像在CSS中一样,你通过在id前加上“#”来选择id,这样

$("#<%= txtCity.ClientID %>")

相当于

document.getElementById("<%= txtCity.ClientID %>")

...除了jQuery版本返回一个jQuery对象,无论是否匹配(您可以通过检查.length来测试不匹配),而.getElementById()返回对该引用的引用实际DOM对象或null如果没有匹配。

如果您遇到其他问题,那么您可能需要在问题中拼写出来。