0

私は文字列を-0-100として持っています。これは、0と100として分割しようとしています。

jqueryを使ってみました

$("#costFilter li a").click(function () {
                var temp = $(this).html().split("- ");
                var temp1 = temp.split("-");
                alert(temp1[0]);
                alert(temp1[1]);
                //                $("#<%=initialCost.ClientID%>").val(temp1[0]);
                //                $("#<%=endCost.ClientID%>").val(temp1[1]);
                //                $("#<%=BtnCostFilter.ClientID %>").click();
            });

これは機能しません。私のhtmlは:

 <ul style="list-style-type: none" id="costFilter">
                        <li><a href="#.">- 0-100</a> </li>
                        <li><a href="#.">- 100-200</a> </li>
                        <li><a href="#.">- 200 - 300</a> </li>
                        <li><a href="#.">- 400-500</a> </li>
                        <li><a href="#.">- 600-600</a> </li>
                    </ul>

アラートは機能していません。助けてくれてありがとう。

4

3 に答える 3

4

まず、アンカーのテキストのみを取得するtext()代わりに使用する必要があります。html()

第二に、文字列が規則的にフォーマットされている限り、先頭のテキストを取り除くためsubstring()に代わりに使用できます。これにより、最初のコードが単一の文字列ではなく配列split()を返すという実際の問題が解決されます。split()

次のコードは、探していることを正確に実行する必要があります。

var temp = $(this).text().substring(2).split("-");
alert(temp[0]);
alert(temp[1]);
于 2013-01-25T05:51:34.400 に答える
1

html()'-'で分割すると、実際の値はtemp[1] tyrになります

$("#costFilter li a").click(function () {
            var temp = $(this).html().split("- ");
            var temp1 = temp[1].split("-"); //here
            alert(temp1[0]);
            alert(temp1[1]);
            //                $("#<%=initialCost.ClientID%>").val(temp1[0]);
            //                $("#<%=endCost.ClientID%>").val(temp1[1]);
            //                $("#<%=BtnCostFilter.ClientID %>").click();
        });

ここをいじる

于 2013-01-25T05:50:25.200 に答える
1

いくつか明確にする必要があります。

  1. 文字列の分割に jQuery を使用していません。それは古き良きネイティブのJavaScriptです。jQuery は、 DOMと対話する際に大量の機能をラップするために使用されるライブラリーです。

  2. これを呼び出すとsplit()、区切り文字で分割された文字列の配列が返されます。これは、次の行を実行しようとすると、インタープリター エラーが発生することを意味しvar temp1 = temp.split("-");ますtemp

$.mapの API ドキュメント

とはいえ、次のようなことを試してください。

$("#costFilter li a").click(function () {
    var text = $(this).text();  
    var strings = text.split('-');

    // jQuery utility function that takes an array and creates a new one based on items
    // that are actually returned by the callback function (mine only keeps elements
    // that aren't empty)
    var filteredStrings = $.map(strings, function(str) { 
        if (str.length > 0) 
            return str; 
    });

    //do what you need with your strings now
});

これは、これがどのように使用されるかを示す jsfiddle です。http://jsfiddle.net/AVeeN/

于 2013-01-25T06:03:23.650 に答える