Php 按类创建div列表
我不确定是否应该使用jquery或php来实现这一点,但我有一个html页面,其中有几个相同类的div,但ID不同。即: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
<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);
});