首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用simple-html-dom在此选择中获得值?

如何使用simple-html-dom在此选择中获得值?
EN

Stack Overflow用户
提问于 2015-03-02 12:27:45
回答 4查看 2.6K关注 0票数 0
代码语言:javascript
复制
<select name="size_select" class="long form-control">
<option selected="selected" value="">Please select</option>     
<option value="6 (xxs)" title="6 (XXS)">6 (XXS)</option>    
<option value="8 (xs)" title="8 (XS)">8 (XS)</option>       
<option value="10 (s)" title="10 (S)">10 (S)</option>   
<option value="12 (m)" title="12 (M)">12 (M)</option>   
<option value="14 (l)" title="14 (L)">14 (L)</option>   
<option value="16 (xl)" title="16 (XL)">16 (XL)</option>  
<option value="18 (xxl)" title="18 (XXL)">18 (XXL)</option>     
<option value="20 (xxxl)" title="20 (XXXL)">20 (XXXL)</option>   

如何获得此选择的所有值?

代码语言:javascript
复制
$element =  $html->find('#sizeDdl',0);
foreach($element as $elemen) {
    echo ($elemen->plaintext);
}

我尝试这个输出:

注意:尝试在第11行的/h2/home/ line /website.com/test.php中获取非对象的属性。

的思想是,每个单独的值都应该被取下来并记录在SQL中。现在是一个常见的结果,不是每个值都是单独的

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-02 12:48:58

首先在select标记中添加id作为

<select name="size_select" id="sizeDdl" class="long form-control">

然后更改这些行

代码语言:javascript
复制
$element =  $html->find('#sizeDdl',0);     
foreach($element as $elemen) {         
    echo ($elemen->plaintext);     
} 

对于这些人:

代码语言:javascript
复制
$text_array = array();
$html = "Your html";     
foreach($html->find('#sizeDdl') as $element) { 
    $options = $element->find('option'); 
    foreach($options as $element1) { 
        $text_array[] = ($element1->plaintext); 
    } 
} 
var_dump($text_array);
print_r(text_array);
票数 3
EN

Stack Overflow用户

发布于 2015-03-02 12:34:00

更改这一行

代码语言:javascript
复制
<select name="size_select" class="long form-control">

到这条线

代码语言:javascript
复制
<select name="size_select" id="sizeDdl" class="long form-control">

由于dom元素应该具有id属性,因此在javascript中使用的是id属性,而html中则缺少id属性。

票数 1
EN

Stack Overflow用户

发布于 2015-03-02 12:37:08

当前代码有两个问题。

1)您正在尝试用不存在的id来获取元素。

2)您正在迭代元素列表,而不是它的子元素。

要么按名称查找元素,要么给它一个id (sizeDbl),然后迭代它的子元素( options)。

您还可以修改选择器以选择一个子列表,而不是select本身:

代码语言:javascript
复制
$options = $html->find('#sizeDdl option');

代码语言:javascript
复制
$options = $html->find('#sizeDbl')->find('option');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28809783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档