Javascript 检查返回为对象

Javascript 检查返回为对象,javascript,jquery,html,Javascript,Jquery,Html,我使用'createDivs'类在PHP页面中列出了17个块。我试图每次都获取每个块上的文本数据,当我按下键盘上的enter按钮搜索HTML源代码中的元素时,看看它是否有名为“blocksList div_1_1”、“blocksList div_2_1”的类,或者整数是什么,这样我就可以用每个块上的文本显示警报消息 var current_col = 1; var current_row = 1; var totalrowcount = 17; //is using for how many

我使用'createDivs'类在PHP页面中列出了17个块。我试图每次都获取每个块上的文本数据,当我按下键盘上的enter按钮搜索HTML源代码中的元素时,看看它是否有名为“blocksList div_1_1”、“blocksList div_2_1”的类,或者整数是什么,这样我就可以用每个块上的文本显示警报消息

var current_col = 1;
var current_row = 1;
var totalrowcount = 17;  //is using for how many blocks of rows I have in total 

$(document).ready(function() 
{
  $("div").show();
$(".div_"+current_col+'_'+current_row).addClass( "yellowbg" );
  getBlocks();
});

var current_top_idx = 0;
$(document).keyup(function(event)
{
  var yellowbg = $(".yellowbg");
  var rowwidth = $(".row").css( "width").split("px");

  var displayrowcount = 7;  //is using for to hide other blocks
  var rowheight = 49; //is using for to make measurement from row 1 to row 7 to hide the other blocks
  var totalwidth_current = 0;
  var totalwidth_current1 = 0;

  if(parseInt(current_row)+parseInt(1) <= 8)
  {
    for(var i=1; i<=(parseInt(current_row)+parseInt(1));i++ )
    {
      var yellowbgnextdivwidth = $(".div_"+current_col+'_'+i).css( "width"); 
      var yellowbgnextdivwidthsplit = yellowbgnextdivwidth.split("px");
      totalwidth_current=parseInt(totalwidth_current)+parseInt(yellowbgnextdivwidthsplit[0]);
    }
  }

  if (event.keyCode == 13)
  {  //enter
    alert("enter tested");
    var $row = $('.blocksList div_'+i+'1');
    alert($row);
  }
  else if (event.keyCode == 38) 
  {  //up
    if(current_col > 1 && current_row == 1)
    {
      var currentrowtop = $(".mainWrap div.row:first-child").css( "margin-top");   
      var calcuatedrowtop = -(current_col*rowheight);
      currentrowtop = parseInt(currentrowtop)-rowheight;

      if((currentrowtop - calcuatedrowtop) < rowheight)
      {
     currentrowtop = parseInt(currentrowtop)+rowheight;
     currentrowtop = parseInt(currentrowtop)+rowheight;
     var rowtop = currentrowtop+="px";
     $(".mainWrap div.row:first-child").css( "margin-top", rowtop );            
                              if (current_top_idx > 0) { current_top_idx--; }
      }
      current_col--;
    }
  }
  else if (event.keyCode == 40) 
  {    //down
    if(current_col < totalrowcount && current_row == 1)
    {
                      if (current_col >= current_top_idx + displayrowcount) 
      {
        var currentrowtop = $(".mainWrap div.row:first-child").css( "margin-top");
        currentrowtop = parseInt(currentrowtop)-rowheight;
        var rowtop = currentrowtop+="px";
        $(".mainWrap div.row:first-child").css( "margin-top", rowtop );
                              current_top_idx++;
      }
      current_col++;
    }
  }
  $('div').removeClass( "yellowbg" );
  //alert(".div_"+current_col+'_'+current_row);
  $(".div_"+current_col+'_'+current_row).addClass( "yellowbg" );
});

width = new Array();
imagecontent = new Array();
pgmcontent = new Array();

var checksuminit = 0;
var checksum = 0;

function getBlocks()
{
  var i=0;
  $.ajax({
  url:'database.php',
  type:'POST',
  data:'',
  success: function(result)
  {
    var $doc = $(result);
    i=1;
    $doc.filter('p#blocks').each(function(index) {imagecontent[i] = $(this).html();i++;});
    createDivs(i-1);
    totalrowcount = i-1;

    var j=1;
    $doc.filter('#links').each(function(index) {
    var $link = $(this).html();
    $link1 = $link.replace("&amp;", "&"); 
    if($.trim($link1) !='')
    {
      checksuminit+=j;
      getlinks($link1,j);
    }
    j++;
    });
  }
 });
}

function createDivs(numberOfDivs)
{
  var programsNumber = 1;
  for(var i=1;i<=numberOfDivs;i++)
  {
     $('.mainWrap').append(
     '<div class="row" id="row'+i+'">' +
         '<div id="image'+i+'" class="blocksList div_'+i+'_1"></div>' +
         '<div class="rowSubPgm">' +
             '<div id="block'+(programsNumber++)+'" class="pgmFirstRow div_'+i+'_2 row2"></div>' +
             '<div id="block'+(programsNumber++)+'" class="pgmFirstRow div_'+i+'_3 row3"></div>' +
        '</div>' +
     '</div><div class="clear"></div>');
  }
  $(".div_"+current_col+'_'+current_row).addClass( "yellowbg" );
}

function getlinks($link,j)
{
  var widthval =  850;
  var parts = $link.split("/");
  var links = parts[parts.length-1];
  var programlength = 0;

  $.ajax({
  url:$.trim(links),
  type:'GET',
  data:'',
  success: function(data)
  {
    var $data = $(data);        
    var title1 = $data.filter("#title1").html();

    var currenttotal = 0;   
    var firstele = ((j-1)*0)+0; // how many blocks i want to output in per block
    var lastele = parseInt(firstele)+0; // how many blocks i want to output AFTER the first block
    var k = 1;
    var programlength = 0;

    for(;firstele <= lastele;firstele++)
    {
      currenttotal++;
      pgmcontent[firstele] = eval('title'+k);
      k++;      
    }
    checksum+=j;

    if(checksuminit == checksum)
    {  
      for(var kk=1;kk <= imagecontent.length-1;kk++)
      {
        $('#image'+kk).html(imagecontent[kk]);
      }
      $("div").show();  
    }
  }   
  });
}
var电流_col=1;
无功电流_行=1;
var totalrowcount=17//用于计算我总共有多少行块
$(文档).ready(函数()
{
$(“div”).show();
$(“.div_uu”+当前列+”当前行).addClass(“yellowbg”);
getBlocks();
});
var电流_top_idx=0;
$(文档).keyup(函数(事件)
{
var yellowbg=$(“.yellowbg”);
var rowwidth=$(“.row”).css(“width”).split(“px”);
var displayrowcount=7;//用于隐藏其他块
var rowheight=49;//用于从第1行到第7行进行测量,以隐藏其他块
var totalwidth_电流=0;
var totalwidth_current1=0;
if(parseInt(当前_行)+parseInt(1)0{current_top_idx--}
}
当前列--;
}
}
else if(event.keyCode==40)
{//down
如果(当前列=当前列顶行数+显示行数)
{
var currentrowtop=$(“.mainWrap div.row:first child”).css(“页边空白顶部”);
currentrowtop=parseInt(currentrowtop)-行高;
var rowtop=currentrowtop+=“px”;
$(.mainWrap div.row:first child”).css(“页边空白顶部”,rowtop);
当前_top_idx++;
}
当前_col++;
}
}
$('div').removeClass(“yellowbg”);
//警报(“.div”+当前列+”+当前行);
$(“.div_uu”+当前列+”当前行).addClass(“yellowbg”);
});
宽度=新数组();
imagecontent=新数组();
pgmcontent=新数组();
var checksuminit=0;
var校验和=0;
函数getBlocks()
{
var i=0;
$.ajax({
url:'database.php',
类型:'POST',
数据:“”,
成功:功能(结果)
{
var$doc=$(结果);
i=1;
$doc.filter('p#blocks')。每个(函数(索引){imagecontent[i]=$(this.html();i++;});
createDivs(i-1);
totalrowcount=i-1;
var j=1;
$doc.filter('#links')。每个(函数(索引){
var$link=$(this.html();
$link1=$link.replace(“&;”、“&”);
如果($.trim($link1)!='')
{
checksuminit+=j;
getlinks($link1,j);
}
j++;
});
}
});
}
函数createDivs(numberOfDivs)
{
变量程序编号=1;
对于(var i=1;i

现在,我处理获取url的方法将是另一种更快得多的方法。如果您从HTML文件中知道Block 6应该与“”匹配,我只需这样做

  <div id="image6" class="blocksList div_6_1" 
      data-url="http://www.hereisthelink.com/test.asx">Block 6</div>
如果这是一个选项,那么就这样做。原因是jQuery正在搜索整个dom以找到.yellowbg所在的位置。然后您将让它在整个dom中搜索文本“Block 6”,然后让它找到下一个标记,然后从中读取HTML??这是你无缘无故要做的大量额外工作。只要将应该属于块6的url放在块6的一个特殊属性中,你就可以读取它了

如果你一定要找到块6所在的,那么就这样做

   <p id='Block 6'>Block 6</p><p id='links'>http://www.testsite.com.com/myscript.php?blocks=Block 6</p><a href="http://www.hereisthelink.com/test.asx">Link 1</a>

在不同的元素中多次写入id='links'会使浏览器非常疯狂和不一致,这是针对我需要的每个元素的,但是我如何提取每个块上的文本,然后找到匹配的元素来提取块下的链接,例如:块6?不-我说这有点开玩笑,我的意思是-没有多个元素我刚才说的,当我按下键盘的enter键时,我想找到两个相同的元素,即我在第一篇文章中已经发布了fiddle链接的块上的文本。我想搜索相同的元素,从html源代码到另一个html源然后用我从另一个页面提取的链接发出警报。你没有正确阅读我要求的文章。请再读一遍!@ChrisJohnson-编辑的答案,看看是否有帮助。请尝试重新阅读你的问题。这是一个非常蹩脚的英语,很难理解。尤其是第一段。还有p请尝试删除不可撤销的代码,这可能是我是唯一回答此问题的人的原因。谢谢您的帮助。我在按下enter按钮时收到了警报,但从其他php提取url无效。我尝试了以下方法:var urlFromBlock=$(“p[id=”+textFromBlock+“]”)。next('a').attr(“myscript.php”);警告信息上写着“我想要的url:未定义”。你知道吗?
<?php

function db_connect()
{
  define('DB_HOST', 'localhost');
  define('DB_USER', 'myusername');
  define('DB_PASSWORD', 'mypassword');
  define('DB_DATABASE', 'mydbname');

  $errmsg_arr = array();
  $errflag = false;
  $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

  if(!$link) 
  {
    die('Failed to connect to server: ' . mysql_error());
  }

  $db = mysql_select_db(DB_DATABASE);
  if(!$db) 
  {
    die("Unable to select database");
  }
}

function clean($var)
  {
    return mysql_real_escape_string(strip_tags($var));
  } 
  $blocks = clean($_GET['blocks']);

  if($errflag) 
  {
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
    echo implode('<br />',$errmsg_arr);
  }
  else 
  {
  $insert = array();

  if(isset($_GET['blocks'])) 
  {
    $insert[] = 'blocks = \'' . clean($_GET['blocks']) .'\'';
  }
  mysql_close();


  if(!$blocks) 
  {
    $qrytable1="SELECT id, blocks, links FROM mydb_info";
    $result1=mysql_query($qrytable1) or die('Error:<br />' . $qry . '<br />' . mysql_error());

    while ($row = mysql_fetch_array($result1)) 
    {
      echo "<p id='blocks'>";
      echo $row['blocks'];
      echo '<a href="' . $row['links'] . '">Link 1</a>';
    }
  }
}
?>
  <div id="image6" class="blocksList div_6_1" 
      data-url="http://www.hereisthelink.com/test.asx">Block 6</div>
 if (event.keyCode == 13)
  {  
    alert("enter tested");
    var textFromBlock = $('.yellowbg').html();
    var urlFromBlock = $('.yellowbg').attr('data-url');
    alert("text from box I selected: " + textFromBlock);
    alert("url I wanted: " + urlFromBlock);
  }
   <p id='Block 6'>Block 6</p><p id='links'>http://www.testsite.com.com/myscript.php?blocks=Block 6</p><a href="http://www.hereisthelink.com/test.asx">Link 1</a>
 if (event.keyCode == 13)
  {  
    alert("enter tested");
    var textFromBlock = $('.yellowbg').html();
    var urlFromBlock = $("p[id='" + textFromBlock + "']").next('a').attr("href");
    alert("text from box I selected: " + textFromBlock);
    alert("url I wanted: " + urlFromBlock);
  }