小编125*_*748的帖子

向Array以外的原始数据类型添加属性

我不应该像这样向数组中添加元素:

var b   = [];
b.val_1 = "a";
b.val_2 = "b";
b.val_3 = "c";
Run Code Online (Sandbox Code Playgroud)

我不能使用本机数组方法,为什么不只是一个对象.我只是在数组中添加属性,而不是元素.我想这会使它们与length属性平行.虽然试图重置length(b.length = "a string")得到Uncaught RangeError: Invalid array length.

在任何情况下,我仍然可以看到我设置的属性如下:

console.log(b); //[val_1: "a", val_2: "b", val_3: "c"]
Run Code Online (Sandbox Code Playgroud)

我可以使用点语法访问它:

console.log(b.val_1); //a
Run Code Online (Sandbox Code Playgroud)

如果一个数组只是一个对象,字符串或数字是一个对象,为什么不能(不是我想要的)我用这种语法将属性附加到它们:

var num    = 1;
num.prop_1 = "a string";

console.log(num); //1
Run Code Online (Sandbox Code Playgroud)

我无法使用点语法访问其属性

console.log(num.prp); //undefined
Run Code Online (Sandbox Code Playgroud)

为什么可以使用数组而不是其他数据类型.对于所有情况,我应该使用{}并且只需要使用{},那么为什么数组有这种能力呢?

JSBIN

javascript

4
推荐指数
1
解决办法
1068
查看次数

使用jQuery测试字符串是否包含HTML标记

我想测试一个字符串是否包含html标签.

html = "<p class=\"c\">some <span>conten<b class=\"i\">t</b></span><p><p>more content</p><p><i>important</i>";
Run Code Online (Sandbox Code Playgroud)

我认为使用其中任何一个find()或者has()会帮助我这样做,但它不起作用.

$(html).find("p") //[]
$(html).has("p")  //[]
Run Code Online (Sandbox Code Playgroud)

如果我做实验,我会得到令人困惑的结果.

$(html).has("p") //[]
$(html).has("*") //array of <p> elements and children
$(html).has("*") == true //false
$(html).has("*").length == true //false ??
Run Code Online (Sandbox Code Playgroud)

为什么我不能使用这些方法中的任何一个来查看我的字符串是否包含HTML标记?

谢谢

html javascript jquery

4
推荐指数
1
解决办法
6787
查看次数

带括号和逗号的不熟悉的变量赋值

为什么使用这样的括号分配值仅计算到最后一个值

 var a = (1, 2, 5 - 1); //4
Run Code Online (Sandbox Code Playgroud)

它似乎也需要括号

var a = 1, 5 - 1; //SyntaxError: Unexpected number
Run Code Online (Sandbox Code Playgroud)

javascript

4
推荐指数
1
解决办法
836
查看次数

当正则表达式禁止它时,ng-pattern允许空格

ng-pattern 允许具有以下模式的空格,我无法理解为什么会这样做.

ng-pattern="/^[a-zA-Z\d\-\_]+$/"
Run Code Online (Sandbox Code Playgroud)

我试过没有逃避-_,结果是相同的:类ng-validng-valid-pattern应用.

我试图只允许az(大写和小写)和短划线和下划线.这个模式看起来像我在regex101上所期望的那样工作,所以这很令人困惑.

更新:在空格后输入有效字符后,文本字段被标记为无效,但是当空格是第一个字符时,文本字段被标记为无效:例如(不是真的像这样硬编码,"someText"和"some text"被输入到文字输入):

<input> someText</input> //ng-valid
<input>some text</input> //ng-invalid
Run Code Online (Sandbox Code Playgroud)

仍然很困惑为什么会这样.

regex angularjs

4
推荐指数
1
解决办法
5765
查看次数

在哪里操纵通过AJAX服务获得的数据?链接fn或控制器?

我有一个HTML部分,我也试图绑定AJAX数据.出于某种原因,似乎我必须将AJAX服务调用放在指令的link函数中.我不能把它放在控制器中; 我在这样的指令中这样做:

link: function(scope){
  MyService.getData().then(function(res){
    scope.myData = res.data;
  }, function(res){
    throw new Error('Error getting data');
  });
}
Run Code Online (Sandbox Code Playgroud)

首先,我很好奇为什么我不能在我的控制器中执行此操作.但是,一旦我得到它,我想对数据进行一些操作.是否所有这些都需要在链接函数中发生.在控制器循环$scope.myData中将无法工作,因为它尚未定义?我可以以某种方式在我的控制器中使用我的AJAX数据而无需在链接文件中执行我的逻辑吗?

javascript ajax model-view-controller angularjs

4
推荐指数
1
解决办法
227
查看次数

ngAnimate仅在IE9中部分降级

我修改了本教程中的代码,代码动画滑动,div以便它可以作为切换菜单.我希望它会降级为IE9中的正常隐藏节目.它是什么.但只有一次.如果我单击第一个按钮,它将打开和关闭其div.它适用于所有这四个.但在第一次切换之后,IE无法再显示divs.我可以ng-click通过记录单击按钮的索引来验证是否正在工作.但出于某种原因,似乎该display属性未设置为block.是否存在一个已知的问题,即ngAnimate导致IE9在没有错误的情况下中断,或者我错过了一些明显的东西?

JSBIN

javascript css internet-explorer-9 angularjs ng-animate

4
推荐指数
1
解决办法
430
查看次数

Babel编译代码中的这种语法是什么?

我正在阅读本网站上的ES2015入门书,这个例子是针对计算属性名称给出的:

const namespace = '-webkit-'; 
const style = { 
  [namespace + 'box-sizing'] : 'border-box', 
  [namespace + 'box-shadow'] : '10px10px5px #888888' 
}; 
Run Code Online (Sandbox Code Playgroud)

这很简单,但我不明白Babel正在做什么来解决这个问题.它给出了这个:

var _style;
var namespace = '-webkit-';
var style = (
  _style = {},
  _style[namespace + 'box-sizing'] = 'border-box',
  _style[namespace + 'box-shadow'] = '10px 10px 5px #888888',
  _style
);
Run Code Online (Sandbox Code Playgroud)

(我已经重新格式化了缩进)

在线Babel Transpilation在这里

我找不到关于这个语法是什么的文档:_style对象的声明,然后是属性名称及其值, _style的paranthesis中的列表,然后简单地以结束parthenthesis之前的结尾.

javascript ecmascript-6 babeljs

4
推荐指数
1
解决办法
58
查看次数

使用php正确编写PostgreSQL准备/执行语句?

我听说使用PREPAREEXECUTE在SQL语句中将用户提供的数据清理为无法注入SQL的内容.这是真的?

我的原始查询是这样的:

$query = 
"SELECT * FROM sales_orders 
WHERE ksisoldby ILIKE '".$user."'";
Run Code Online (Sandbox Code Playgroud)

这是我将其更改为prepare/execute语句的最佳猜测:

 <?php
$id = $_POST['id'];
$search = $_POST['user_supplied_search_term'];

PREPARE search_query_function (varchar, varchar) AS

SELECT * FROM sales_orders 
WHERE ksisoldby ILIKE '$1'";

EXECUTE search_query_function($id, $search);
?>
Run Code Online (Sandbox Code Playgroud)

这是正确编写/调用的吗?PDO我也读过一些内置的php对象().我应该使用它们还是结合使用?感谢您对此类广泛问题的帮助.

php sql postgresql

3
推荐指数
1
解决办法
2567
查看次数

在这里使用三元运算符是否合适?

我有一个变量来检查某些值的长度; 如果一个失败,var pass则设置为false.另一个函数检查电子邮件地址的有效性,如果未通过测试,则将其设置为false.我正在尝试制作自定义错误消息.

使用像这样的三元运算符或嵌套的if语句是否更好?或者有更简单的方法吗?

var mail = true;
var pass = true;
var err = '';

(mail && pass) ? err = 'mail and pass both true' : (!mail && pass) ? err = 'not mail and is pass' : (mail && !pass) ? err = 'is mail and not pass' : err = 'neither pass nor mail';
Run Code Online (Sandbox Code Playgroud)

小提琴

javascript

3
推荐指数
1
解决办法
217
查看次数

填充增加div的宽度和高度

如何修改这些div,以便在更改填充时,它们的高度和宽度不会扩展?我试图实施

.outer, .inner {
    display: block;
}

.outer {
    /* specify fixed width */
    width: 300px;
    padding: 0;
}

.inner {
    /* specify padding, can be changed while remaining fixed width of .outer */
    padding: 5px;
}
Run Code Online (Sandbox Code Playgroud)

这里开始

通过给父div fixed_widthrelative_container width:700px;height:100px; padding:0px;,但当我应用填充.content.obscure,div扩展到覆盖.extra_margins below.谢谢!

http://jsfiddle.net/loren_hibbard/ZmJ9R/

html css

3
推荐指数
1
解决办法
3422
查看次数