我有一个JQuery脚本,它使用 AJAX 向以下网址https://djjohal.video/video/671/index.html#gsc.tab=0
发送请求,其中包含视频歌曲的信息。
我实际上想解析并从 AJAX 调用中收到的html内容中获取所有细节。
HTML页面共包含3个 div ,每个都有一个" .head ",其中包含内容第一个 div 是我想要获取的歌曲的标题。因此,我尝试使用JQuery的:first 选择器:$(PAGE).find("div.class:first").text();
其中 PAGE 是已解析的HTML对象。
它的作用是不是选择实际的第一个div,而是选择带有 head 类的第二个div,其中包含无用的信息。
这是我的JavaScript代码
function action(){
let url = `https://djjohal.video/video/671/index.html#gsc.tab=0`;
LOG_INFO( "REQUEST SENT..." );
$.ajax({
url : url,
success : function(res){
LOG_INFO( "DATA RECEIVED..." );
let PAGE = $(res);
LOG_INFO( $(PAGE).find("div.head:first").text() );
}
});
}
function LOG_INFO( MSG ){
$("body").text( MSG );
console.log( MSG );
}
$(document).ready(function(){
action();
});
以下是 AJAX调用
期间收到的 HTMLcontentCannot Paste the whole content in here
如果支持,您可以通过此链接查看内容。
view-source:https://djjohal.video/video/671/index.html#gsc.tab=0
这是执行时代码的输出。
REQUEST SENT...
DATA RECEIVED...
Select Format :
文字" 选择格式:"是具有 head 类的第二个div的内容。
您可以清楚地看到第一个带有" head "是包含歌曲标题的那个。
但为什么JQuery不能看到这个?
为什么:第一个选择器选择第二个 div 。
我该怎么办?请帮忙!!
答案 0 :(得分:0)
答案 1 :(得分:0)
首先,您需要清理HTML
为什么在HTML标记之外有HEAD标记?
此外,你不应该将身体内容放在头部。
试试这个:
$ticket = $this->Ticket->find('first', array('conditions' => array('AND' => array('Ticket.TRV_No' => $trv_no)));
if(empty($ticket))
{
$table_name = 'Ticket_L0';
$this->Ticket->setSource($table_name);
//$ticket = $this->Ticket->find('first', array('conditions' => array('Ticket.TRV_No' => $trv_no)));
$ticket = $this->Ticket->find('first', array('conditions' => array('AND' => array('Ticket.TRV_No' => $trv_no, 'Ticket.HIDDEN_STAT LIKE' =>'0'))));
if(empty($ticket)) { return false; } else { return true; }
}
else
{ return true; }
}