JQuery Get方法只在一个div上运行

时间:2015-11-14 00:23:12

标签: javascript jquery html

好吧,我有一个$ .get方法从其他页面获取数据并将其加载到div。但即使使用.each,也只会影响一个div。 这是HTML:



$(document).ready(function() {
  $(".post1").each(function() {
    var categlink = $(this).find(".post-area > a").attr("href");
    var pAvatar = $(this).find("img.postavatar");
    var pTTitle = $(this).find(".topictitle");
    var pContent = $(this).find(".postcontent");
    var pType = $(this).find("img.post-type");
    var pOwnerlink = $(this).find(".p-ownerlink");
    var pTime = $(this).find(".post-time");

    $.get(categlink, function(data) {
      var tLink = $(data).find(".main-content:nth-child(5) tr:first-child a.topictitle").attr("href");
      $.get(tLink, function(data) {
        var fAvatar = $(data).find(".post:first-child .user-basic-info > a > img").attr("src");
        pAvatar.attr("src", fAvatar);

        var fTopicTitle = $(data).find(".paged-head.clearfix > h1").text();
        pTTitle.text(fTopicTitle);

        var fTContent = $(data).find(".post:first-child .entry-content > div:first-child").html();
        pContent.html(fTContent);

        var fType = $(data).find(".post:first-child .posthead > h2 > img").attr("src");
        pType.attr("src", fType);

        var fOwner = $(data).find(".post:first-child h4.username > a > span > strong").text();
        pOwnerlink.text(fOwner);

        var fOwnerlink = $(data).find(".post:first-child h4.username > a").attr("href");
        pOwnerlink.attr("href", fOwnerlink);

        var fTTime = $(data).find(".post:first-child .posttime").text();
        pTime.text(fTTime);

        $(".postcontent img").each(function() {
          if ($(this).height() > 70) {
            $(this).addClass("imgresize");
            $('.main-forum').isotope({
              itemSelector: '.c-post',
              percentPosition: true,
            });
          }
        });
      });
    });
  });
});

<div class="c-post post1">
  <div class="post-info">
    <img class="postavatar">
    <div class="topictitle"></div>
  </div>
  <div class="postcontent"></div>
  <div class="post-info2">
    <img class="post-type">
    <div class="post-owner">Por
      <a class="p-ownerlink"></a>
    </div>
    <div class="post-time"></div>
    <div class="post-area"><a href="{catrow.forumrow.U_VIEWFORUM}" title="{catrow.forumrow.FORUM_DESC}">{catrow.forumrow.FORUM_NAME}</a>
    </div>
  </div>
</div>

<div class="c-post post2">
  <div class="post-info">
    <img class="postavatar">
    <div class="topictitle"></div>
  </div>
  <div class="postcontent"></div>
  <div class="post-info2">
    <img class="post-type">
    <div class="post-owner">Por
      <a class="p-ownerlink"></a>
    </div>
    <div class="post-time"></div>
    <div class="post-area"><a href="{catrow.forumrow.U_VIEWFORUM}" title="{catrow.forumrow.FORUM_DESC}">{catrow.forumrow.FORUM_NAME}</a>
    </div>
  </div>
</div>

<div class="c-post post3">
  <div class="post-info">
    <img class="postavatar">
    <div class="topictitle"></div>
  </div>
  <div class="postcontent"></div>
  <div class="post-info2">
    <img class="post-type">
    <div class="post-owner">Por
      <a class="p-ownerlink"></a>
    </div>
    <div class="post-time"></div>
    <div class="post-area"><a href="{catrow.forumrow.U_VIEWFORUM}" title="{catrow.forumrow.FORUM_DESC}">{catrow.forumrow.FORUM_NAME}</a>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

实际上,我的页面有各种.post1 div,但只有一个受到影响。 感谢。

修改

所以,问题是:我们不能在其他$ .get中使用$ .get。问题是:每个.post1都有一个链接,我称之为 tLink 。获得.post1的tLink后,我需要使用tLink值运行另一个$ .get方法来从其他页面获取信息。我已经尝试过,没有成功:

&#13;
&#13;
function loadpostinfo() {
	$(".post1").each(function () {
		var categlink = $(this).find(".post-area > a").attr("href");
		var pAvatar = $(this).find("img.postavatar");
		var pTTitle = $(this).find(".topictitle");
		var pContent = $(this).find(".postcontent");
		var pType = $(this).find("img.post-type");
		var pOwnerlink = $(this).find(".p-ownerlink");
		var pTime = $(this).find(".post-time");

		$.get(categlink, function (data) {
			var tLink = $(data).find(".main-content:nth-child(5) tr:first-child a.topictitle").attr("href");
		});

		if (typeof tLink === "undefined") {
		} else {
			console.log("checked if tLink is valid");
			$.get(tLink, function (data) {
				console.log("running tLink get method");
				
				var fAvatar = $(data).find(".post:first-child .user-basic-info > a > img").attr("src");
				pAvatar.attr("src", fAvatar);

				var fTopicTitle = $(data).find(".paged-head.clearfix > h1").text();
				pTTitle.text(fTopicTitle);

				var fType = $(data).find(".post:first-child .posthead > h2 > img").attr("src");
				pType.attr("src", fType);

				var fOwner = $(data).find(".post:first-child h4.username > a > span > strong").text();
				pOwnerlink.text(fOwner);

				var fOwnerlink = $(data).find(".post:first-child h4.username > a").attr("href");
				pOwnerlink.attr("href", fOwnerlink);

				var fTTime = $(data).find(".post:first-child .posttime").text();
				pTime.text(fTTime);

				var fTContent = $(data).find(".post:first-child .entry-content > div:first-child").html();
				pContent.html(fTContent);

				setTimeout(alignposts, 5000);
			});
		}
	});
}
$(document).ready(function () {
	loadpostinfo();
});
&#13;
&#13;
&#13;

我如何进行?

1 个答案:

答案 0 :(得分:0)

OH MY GOSH,我是地球上最愚蠢的人!

问题:只有页面的第一个.post1内容已加载。然后每个都有一个 categlink url值,用于获取Categlink页面中的 TLink url值。然后我使用带有$ .get的TLink来加载此.post1 div中的内容。

修复:只有第一个.post1 div中的categlink页面实际上有一个TLink要使用。其他的没有与我的过滤器匹配的内容。所以,这个混乱是关于服务器上的数据,而不是JQuery或HTML。

抱歉浪费你的时间,伙计们! 现在全部修好了,谢谢!