将 PHP 函数的 3 小位重构为 JS - 数组,如果为空且匹配 url
Refactoring 3 small bits of PHP function into JS - array, if empty and matching url?
我不太喜欢JS,但我想知道如何将我的PHP运行到JS中。如何仅使用 Javascript 执行以下操作?
// 1. Getting the request
<?php if($_GET["slider"]=="1"){ ?>
$(".class1 a").click()
<?php } ?>
<?php if($_GET["slider"]=="2"){ ?>
$(".class2 a").click()
// 2. Matching the URL and setting an active class on the list item
<li><a href="my_page.php" class="<?php if (strrpos($_SERVER['REQUEST_URI'], 'my_page') !== FALSE ) {?>active<?php } ?>">My Page</a></li>
// 3. Nav array and If empty
<?php
$navigation = array(
'previous' => 'page1.php',
);
if (isset($navigation['previous']))
{
?>
<div class="prev">
<a href="<?php echo $navigation['previous']; ?>">
<span class="previous-icon"></span><span>Previous</span>
</a>
</div>
我在谷歌搜索后的尝试..
<?php if(var _GET["slider"]=="1"){ } if(_GET["slider"]=="2"){ if (strrpos(var _SERVER['REQUEST_URI'], 'my_page') !== false ) {} var navigation = {
'previous' : 'page1.php',
};
if ((navigation['previous']))
{
-
您可以像本答案一样获取"GET"值(查询字符串(
-
window.location.href.indexOf("my_page") != -1
,搜索窗口位置和索引以获得进一步的解释 -
检查代码
var navigation = {previous:"page1.php"}; document.write('<a href="'+navigation["previous"]+'">....');`
数组在 js 中不能有字符串索引,需要使用对象;您也可以改用 Navigation.Before。
你不能像PHP那样混合JS和HTML,你必须使用document.write或其他DOM操作函数"回显"所有内容。有关这些主题的进一步帮助,请搜索粗体部分。
回答你的三个问题:
1:如果 URL 中有变量,则单击某些内容(即 /page.php?slider=1
(:查看此页面,其中详细介绍了如何在jQuery中从URL中检索变量。简而言之,你可以做这样的事情,
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
从 URL 获取变量,然后从那里您可以通过询问 getUrlvars()['slider'] == 1
来检查是否设置了变量。
2:匹配 url 并将类设置为活动类:您可以执行以下操作
if (window.location.href == 'http://www.example.com/page.php') {
$('a').addClass('active');
}
3:如果你想使用Javascript数组创建一个动态的链接列表,你可以做这样的事情:
var myLinks = {
"link_1_title": "http://www.example.com",
"link_2_title": "http://www.stackoverflow.com/"
}
$.each(myLinks, function(key, val) {
$('.navbar').append('<a href="' + val + '">' + key + '</a>');
}
有关jQuery.each
的更详细说明,请参阅 jQuery 文档页面。
听起来你在这里有一个邪恶的联盟,PHP绘制JS,然后JS做事。这是灾难的秘诀。你的PHP应该把你的数据传递给你的JS,然后让JS完成工作。不要混淆逻辑。有一个干净的交接。
<script>
var something = <?php echo $var ?>;
myclass = new someClass(something);
</script>
相关文章:
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- Javascript:如果数组有对象或不为空
- JavaScript 如果数组包含名称,则不要这样做
- 如果数组包含特定值,则返回该值的完整“内容”
- 如果数组中的值为false,则破坏Promise
- 如果数组键实际上是字符串,那么数组和对象的区别是什么
- Javascript:如果数组元素已填充,则为数组的每个元素插入表行
- 如果数组中只有一个对象,则Lodash返回错误的reduce结果
- 如果数组为空,如何更改动态创建的数组JQplot
- 如果数组中的元素具有0值,则显示错误
- 如果数组中存在类似的项,请移除并添加它,否则只需推送它
- 如果数组中存在 URL,请执行某些操作
- 灰尘.js如果数组中的值
- 如果数组中的字符串不匹配,请从字符串中删除字符串字符
- 如果数组列表在 JSP 页面中为空,如何删除类
- 如果数组对象中不存在,则推送
- 如果数组的所有值都为真,如何返回 true,否则返回 false
- 如果数组中不存在,则返回值
- 在 JavaScript 中,如果数组,函数是对象原型,那么为什么 TypeOf 返回
- 如果数组具有特定值