Javascript 检查返回为对象
我使用'createDivs'类在PHP页面中列出了17个块。我试图每次都获取每个块上的文本数据,当我按下键盘上的enter按钮搜索HTML源代码中的元素时,看看它是否有名为“blocksList div_1_1”、“blocksList div_2_1”的类,或者整数是什么,这样我就可以用每个块上的文本显示警报消息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
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("&", "&");
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);
}