0

私はこのページを持っています。最初のボタンはうまく機能しています。

2番目のボタンを押して、hrefにあるリンクを表示したいのですが、このように試しましたが、リンクの値だけでなく、ページ全体を取得しました。なぜですか?

<html>
<head>
  <script src="jquery.js"></script>
  <script type="text/javascript">
    $(document).ready(function(){

      var url = "http://localhost/test/asdfasdf.php";

      $("#button").on("click", function() {
        $('body').load( url  );
       });

      $("#button2").on('click',function(){
        $('body').load( url +"#link" );
      });
    });
</script>
</head>
<body>
  <input type="button" id="button" value="load" />
  <input type="button" id="button2" value="search for a tag" />
</body>
</html>
4

3 に答える 3

4

スペースが必要だと思います:

$('body').load(url + " #link");

http://api.jquery.com/load/#loading-page-fragments

あなたが望むのは、その URLhrefの要素の だけです。a#linkにロードする代わりに<body>、AJAX リクエストを作成し、結果を調べます。

$.ajax({
    type: "GET",
    url: "http://localhost/test/asdfasdf.php",
    dataType: "html"
}).done(function (data) {
    var the_link = $(data).find("#link");
    alert(the_link.attr("href"));
});

を に入れるにはhref、メソッドに次<body>の行を追加します。.done()

$("body").html(the_link.attr("href"));
// or
$("body").append(the_link.attr("href"));

しかし、実際にa#link要素をにロードしたい場合<body>は、以前と同じように行いますが、要素を探してa#linkその属性を取得します。

$('body').load(url + " #link", function () {
    var the_link = $("#link");
    alert(the_link.attr("href"));
});
于 2013-03-29T20:24:58.330 に答える
3

編集

<a>別のページの href を取得しようとしています。試してみてください:

$.get(url+' #link', function(data) {
    var $link = $(data).find('a').attr('href');
    alert($link);
});

それは私の最善の推測ですが、暗闇の中でのショットです。

于 2013-03-29T20:25:06.287 に答える
1

現在、コードは に評価され.load('http://localhost/test/asdfasdf.php#link')#linkは役に立たないフラグメントです。DOM の自動解析と要素の読み込みという jQuery の特別な動作を生成するには、スペースが必要です。

$("body").load(url + " #link");

編集:実際のリンク値を取得するには:

$.get(url).done(function (html) {
    console.log($(html).find('#link').attr('href'));
});

bodyコールバックの内部に追加することもでき.doneます。

于 2013-03-29T20:25:44.537 に答える