0

现在我已经生气了,我试图在几个小时内获得输入元素的 onclick 属性......

我收到以下错误:

Notice: Trying to get property of non-object in C:\wamp\www\glitcher\ab.php on line 6

这是片段:

<?php
include 'simple_html_dom.php';
$content='<input type="button" onclick="s8Ajax(\'/bounty.php?hitlist_id=32234066&amp;formNonce=166f7ddc73ce8024c3a6a2b894fa0c83a3d5272c&amp;setTab1Badge=&amp;h=891173dbc0c1aef4bec8592a7e3e74306efa7065\')" class="btnMed" style="font-size: 15px;" value="Add to Hit List">';
$content=str_get_html($content);
$href=$content->find('.btnMed');
$href=$href->onclick;
echo $href;
?>

提前致谢

4

1 回答 1

4

find() 函数返回一个 dom 对象数组,因此您必须指定要处理的元素的索引。

所以要么使用:$href = $content->find('.btnMed', 0);wich 将返回数组的第一个元素,在这种情况下 $href 是一个对象......

或者,因为 $href 是一个数组,所以在他的第一个对象元素上调用 onclick 属性,如下所示:$href = $href[0]->onclick;

这是一个完整的工作示例:

$text = '<input type="button" onclick="s8Ajax(\'/bounty.php?hitlist_id=32234066&amp;formNonce=166f7ddc73ce8024c3a6a2b894fa0c83a3d5272c&amp;setTab1Badge=&amp;h=891173dbc0c1aef4bec8592a7e3e74306efa7065\')" class="btnMed" style="font-size: 15px;" value="Add to Hit List">';

//Create a DOM object
$html = new simple_html_dom();
// Load HTML from a string
$html->load($text);

// Find the first elements with class 'btnMed'
$btn = $html->find('.btnMed', 0);

// Find succeeded
if ($btn) {
    $href = $btn->onclick;
    echo $href;
}
else
    echo "Find function failed !";
于 2013-09-07T09:25:28.033 回答