web前端

jquery 的val()值复加怎么弄

var hdcval = $("#hdelsecount").val();
                        hdcval += icount + ",";
                        $("#hdelsecount").val(hdcval);

往一个隐藏域里追加值。。
原始是0
icount 是传来的数字
想是

$("#hdelsecount").val(icount+",");

以为能重复追加值,如1,2,3,4,这样,可是val()这个方法是覆盖的。不是在值里追加字符额。。那个方法是追加的呢??

 

答:

$("#hdelsecount").val($("#hdelsecount").val() + icount+",")

input回车触发事件

需求

需要在搜索框中输入文字后回车能够触发搜索事件

 

实现

页面代码

<div class="index-search">
   <input type="text" name="indexSearch" class="inp"  value="<s:property value="front.key"/>" onkeydown="tab(event)" placeholder="Search in this store" id="ssubmitStore">
   <img class="icon icon-search" src="/images/djimart-supplier-home/icon_search1.png">
</div>

效果

 

当我们在上图文本框中输入字符按回车实现自动搜索

我们需要引入jquery ,编写如下功能代码

核心在于e.keyCode=13那么就是我们按下了回车的动作

实现1

$("#ssubmitStore").keydown(function(e) {
    if (e.keyCode == 13) {
        seachStore(); //调用搜索店内商品信息
    

yarn的安装及使用教程

目录

一、引言

二、同为包管理工具 npm和yarn的区别

三、yarn的安装

 四、总结


一、引言

之前出过一篇关于 用 npm 创建 react 项目的介绍与使用教程,本文在此介绍并对比一下 yarn 的使用。

yarn 是由 Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具,yarn 是为了弥补 npm 的一些缺陷而出现的。

二、同为包管理工具 npm和yarn的区别

1、并行安装:yarn安装包会同时执行多个任务,npm 需等待上一个任务安装完成才能运行下一个任务
2、离线模式:如果你已经安装过一个包,用 yarn 再次安装会从缓存中获取,而 npm 会从网络下载
3、版本锁定:yarn 默认有一个 yarn.lock 文件锁定版本,保证环境统一,而 npm

        

document.getElementsByClassName与document.getElementById

document.getElementsByClassName()与document.getElementById(),大家应该对这两个方法都非常的不能再熟悉的js方法了,就是获取DOM元素嘛,有什么难的。今天我在这两个简单的方法上面犯了错误。

我页面中有一个按钮button,把按钮的结构代码直接贴上来吧,说的不直观,直接看代码最好了。

<button type="button" class="btn" id="btn-commit">提交</button>

我要的效果是获取到这个按钮后然后给按钮绑定一个点击事件,看到这个要求,多简单啊,我就直接写代码了:

document.getElementsByClassName("btn").onclick = function(){
    console.log(333);
};

代码写完后,发现并不生效。我反复检查代码,代码没有写错,语法也没有问题。最后我就开始检查事件绑定的方法,也是没有问题。也检查不出问题,这个问题已经彻底把我给打懵了。

重新写段代码,然后通过ID获取元素并绑定事件,结果一次成功。

<button id="btn-focus" class="btn">聚焦</button>
var btnFocus = document.getElementById("btn-focus");
btnFocus.onclick = function(){
    console.log(12);
};

我把获取元素的方式由id更改为class,效果就又不行了,这下我大概找到了问题的原因了,分别打印了下:

document.getElementsByClassName("btn")和document.getElementById("btn-commit");

console.log(document.getElementsByClassName("btn"));
console.log(document.getElementById("btn-commit"));

执行结果,贴个图片吧:

从这里看到了,通过getElementsByClassName()获取到的元素是一个元素的集合,通过getElementById()获取到的元素就是一个元素,难怪我通过getElementsByClassName()绑定事件没有响应呢,这就是原因。

本来挺简单的2个方法,由于疏忽,也不能说是疏忽大意,而是原来就没有注意到这个细节吧,之前对于DOM的操作都严重的依赖于jQuery,导致一些基本功给落下了,今天酿成了苦果。还好的是发现了这个问题,这个小小的教训,希望能给自己长个记性吧。再就是不能脱离基本功去严重的依赖工具库。

JavaScript,jQuery 的css方法无效是怎么回事

今天遇到一个问题。
试图通过jquery,给某节点增加css属性,使其实现预期的样式表现。
但不生效。
但又用了别的方式实现。

不生效的写法:

//这种写法不生效。
 $dom.find("p.text-p").css("-webkit-line-clamp",3) ;
 //或
  $dom.find("p.text-p").css({"-webkit-line-clamp":3}) ;

 

生效了的写法:

	//此处这个3,可以是个变量。
	$dom.find("p.text-p").attr("style", "-webkit-line-clamp:" + 3);

 


注,这种情况只是css()方法对于某些特殊的css属性不生效,一般属性还是可以的。

猜测是直接改写dom结构,相当于写成了inline样式。即
<p style="xxxxxx">yyyy</p>
这样的形式。

 

js中如何进行字符串替换

js中进行字符串替换的方法:1、使用正则表达法,语法为【str.replace("需要替换的字符串","新字符串") 】;2、使用常规的替换方法,语法为【str.replace(/需要替换的字符串/g,"新字符串")】。

 

相关图文推荐:js教程

js中进行字符串替换的方法:

两种方法:正则&常规

str.replace("需要替换的字符串","新字符串")

str.replace(/需要替换的字符串/g,"新字符串")

比如:

1、

"yyyy-MM-dd-hh-mm-ss".replace("-","/")

结果如下:

 "yyyy/MM-dd-hh-mm-ss"

2、

"yyyy-MM-dd-hh-mm-ss".replace(/-/g,"/")

结果如下:

"yyyy/MM/dd/hh/mm/ss"

综上:

常规的替换只会替换第一次匹配的字符,正则可替换全部

 

【JS】fetch() 用法 取代ajax

fetch 基本使用

  • Fetch API 提供了一个获取资源的接口(包括跨域请求),用于取代传统的XMLHttpRequest的,在 JavaScript 脚本里面发出 HTTP 请求。
  • 目前还没有被所有浏览器支持,如果考虑低版本浏览器的问题的话,引入https://github.com/github/fetch/blob/master/fetch.js 即可兼容。
  • fetch api是基于promise的设计,返回的是Promise对象,它是为了取代传统xhr的不合理的写法而生的。
  • 没有fetch的时候,我们是这样获取异步资源的:
//发送一个get请求是这样的:

//首先实例化一个XMLHttpRequest对象
var httpRequest = new XMLHttpRequest(