Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按类创建div列表_Php_Jquery_Html_Html Lists - Fatal编程技术网

Php 按类创建div列表

Php 按类创建div列表,php,jquery,html,html-lists,Php,Jquery,Html,Html Lists,我不确定是否应该使用jquery或php来实现这一点,但我有一个html页面,其中有几个相同类的div,但ID不同。即: <div class="something" id="furniture">contents</div> <div class="something" id="lighting">contents</div> <div class="something" id="homewares">contents</div

我不确定是否应该使用jquery或php来实现这一点,但我有一个html页面,其中有几个相同类的div,但ID不同。即:

<div class="something" id="furniture">contents</div>
<div class="something" id="lighting">contents</div>
<div class="something" id="homewares">contents</div>
内容
目录
目录
我正在做的是创建一个由类为“something”的任何div的id生成的


使用jquery做这件事最好吗?我最好如何创建这些div的列表/菜单呢?

如果这是一个选项,你会使用PHP(即,当你加载页面时,你知道ID,并且已经从你的PHP生成了ID),否则只有启用了JavaScript的人才能看到你的页面内容(搜索引擎可能会惩罚这种“隐藏”的行为)内容)

如果在PHP数组中有ID列表,您可以执行以下操作:

<?php 
    $ids = array('furniture, 'lighting', 'homewares');
?>
<ul>
  <?php foreach ($ids as $id) : ?>
  <li><?=$id?></li>
  <?php endforeach; ?>
</ul>
那么,要将该结构“转换”为
ul
,代码应该如下所示:

 var $target = $('.something'),
     $parent = $target.parent(),
     $list   = $('<ul/>', {
       id:     'your_id_here',
       css:    {
           backgroundColor:  'red'
           // more css attributes, or use class: to assign a css class
     }
 });

 $target.each(function(){
     $list.append('<li>' + $(this)[0].id + '</li>');
 });   

 $target.remove();
 $parent.append($list);
var$target=$('.something'),
$parent=$target.parent(),
$list=$(“
    ”{ id:“你的id在这里”, css:{ 背景颜色:“红色” //更多css属性,或使用class:指定css类 } }); $target.each(函数(){ $list.append('
  • '+$(this)[0].id+'
  • '); }); $target.remove(); $parent.append($list);
这将用
ul
取代div。本例中最重要的一点是删除
原始的
div
由于ID在有效的
html标记中必须是唯一的

假设您提供的html已呈现,并且页面上有可用的UL元素,您可以使用JQuery执行(类似于)以下操作

jQuery('.something').each( 
function(index, Element) { 
    var newListElement = jQuery(document.createElement('li'));
    newListElement.html(Element.html());
    jQuery('#myul').append(newListElement);  
});

关于对您施加的限制有点不清楚,但我希望这会有所帮助。

感谢Graphain的快速响应!不幸的是,我需要从div id生成的列表,因为我正在为一位对html略知一二的朋友编码。因此,他只需输入一个带有类“something”的div,并给它一个id。这个新的div id将自动列在
ul
中。我想让它对他来说尽可能简单,这意味着没有数组。有多少人在他们的浏览器中禁用JS?Cmon,如果人们这样做了,那么他们应该接受一半的互联网将呈现错误。唯一有借口的人是Bots@Lord越来越多的人出于安全、隐私和方便的原因禁用JS。很多网站都有安全漏洞、JS错误、嘈杂/恼人的广告和跟踪脚本。查看非常流行的插件NoScript@Lord此外,如果您的JavaScript降级页面与启用JavaScript的页面不接近,Google将对您进行相当严厉的惩罚(可能不是因为像这样的小导航)。使用JavaScript解决此问题是一个非常糟糕的主意。这是一个服务器端问题,需要一个服务器端解决方案,因此PHP是一个不错的选择。如果您需要比PHP数组更简单的配置,您可以使用一个单独的配置文件,其中包含逗号分隔的值或类似的值。啊,这更接近我需要的,但我没有很好地表达自己。将只有一个ul,但每个id将转换为li。
 var $target = $('.something'),
     $parent = $target.parent(),
     $list   = $('<ul/>', {
       id:     'your_id_here',
       css:    {
           backgroundColor:  'red'
           // more css attributes, or use class: to assign a css class
     }
 });

 $target.each(function(){
     $list.append('<li>' + $(this)[0].id + '</li>');
 });   

 $target.remove();
 $parent.append($list);
jQuery('.something').each( 
function(index, Element) { 
    var newListElement = jQuery(document.createElement('li'));
    newListElement.html(Element.html());
    jQuery('#myul').append(newListElement);  
});