1

私はJqueryが初めてです。Jqueryコードで現在のページのURLを取得し、URLに特定の文字列が含まれている場合はリモート要素をロードしたいと思います。

例:

私はこのようなページのURLを持っています:

"http://......./Country/AU/result-search-to-buy"
"http://......./Country/CA/result-search-to-buy"
"http://......./Country/UK/result-search-to-buy"

「/Country/AU」の部分は、ロードするページ要素を決定するために必要なものです。「AU」の場合は「/state-loader.html .state-AU」から​​ロードし、「CA」の場合はロードします。 「/state-loader.html .state-CA」

現在のページ URL の値を取得する組み込みモジュール " {module_pageaddress} " がありますが、それを機能させるための Jquery ロジックがわかりません。

私は次のようなものを期待しています:

if {module_pageaddress} contains "/Country/AU/" 
$('#MyDiv').load('state-loader.html .state-AU');

if {module_pageaddress} contains "/Country/CA/" 
$('#MyDiv').load('state-loader.html .state-CA');

助けてください、そしてどうもありがとう。

4

5 に答える 5

1

ここにいくつかのコードがあります:

<!DOCTYPE html>
<html>
<head>
    <title>jQuery test page</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function loadContent(elementSelector, sourceURL) {
            $(""+elementSelector+"").load(""+sourceURL+"");
        }
        function stateURL() {
            var startOfResult = '../../state-loader.html #state-';
            var match = (/(?:\/Country\/)(AU|US|CA|UK)(?:\/)/).exec(window.location.pathname);

            if (match) {
                return startOfResult + match[1];
            } else {
                return startOfResult + 'AU';
            }
        }
    </script>
</head>
<body>
<a href="javascript:loadContent('#content', stateURL())">Link 1</a>
<div id="content">content will be loaded here</div>
</body>
</html>

そして、状態のさまざまなコンテンツをロードするファイル:

<!DOCTYPE html>
<html>
<head>
</head>

<body>
<div id="state-US">Go USA!</div>
<div id="state-CA">Go Canada!</div>
<div id="state-AU">Go Australia!</div>
<div id="state-UK">Go United Kingdom!</div>
</body>
</html>

ここで動作することを確認してください:

http://www.quirkscode.com/flat/forumPosts/loadElementContents/Country/US/loadElementContents.html

.../US/... を .../AU/... などに置き換えて、動作を確認します。

アイデア/元のコードを入手した元の投稿:

http://frinity.blogspot.com/2008/06/load-remote-content-into-div-element.html

于 2012-09-26T02:06:00.363 に答える
0

URL セグメントの配列を取得するために、私の 1 行の JavaScript 関数を使用します: http://joshkoberstein.com/blog/2012/09/get-url-segments-with-javascript

次に、変数 $countrySegment を国コードが含まれるセグメント番号に定義します。

例: /segment1/segment2/ CA /

(国コードはセグメント 3になります)

次に、3 番目の配列インデックスが設定されているかどうか、およびそのインデックスが「CA」または「AU」であるかどうかを確認します。その場合は、ロードを続行し、国コード セグメントを .html ファイル名に置き換えます。

function getSegments(){
    return location.pathname.split('/').filter(function(e){return e});
}

//set what segment the country code is in
$countrySegment = 3;

//get the segments
$segments = getSegments();

//check if segment is set
//and   if segment is either 'AU' or 'CA'
if(typeof $segments[$countrySegment-1] !==undefined && ($segments[$countrySegment-1] == 'AU' || $segments[$countrySegment-1] == 'CA')){
    $countryCode = $segments[$countrySegment-1];
    $('#target').load('state-loader.html .state-' + $countryCode);
}
于 2012-09-26T02:15:34.997 に答える
0
var result= window.location.pathname.match(/\/Country\/([A-Z]+)\//);
if(result){
    $('#MyDiv').load('state-loader.html .state-' + result[1]);
}
于 2012-09-26T02:17:00.747 に答える
0

あなたが試すことができます

var countryCode = ... // parse the country code from your module    
$('#yourDiv').load('state-loader.html .state-' + countryCode);

.load() のその他の例については、こちらを参照してください

于 2012-09-26T01:38:43.453 に答える
0

URLパスを取得する限り、次のことができます

var path_raw = document.location.path, 
     path_array = path_raw.split("/");

次に、次のようなことができます。

$.ajax({
     url: "./remote_data.php?country=" + path_array[0] + "&state=" + path_array[1],
     type: "GET",
     dataType: "JSON",
     cache: false,
     success: function(data){
          // update all your elements on the page with the data you just grabbed
     }
});
于 2012-09-26T01:39:08.553 に答える