我有多个相同class的button,如何只执行我点击的那一个button???

??Jerry? 2020-04-04 02:23:59

如果我点击 收藏 按钮 只会post出去页面第一个class=“favour”的button
...全文
828 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
E次奥 2020-04-08
  • 打赏
  • 举报
回复
1楼的应该是对的吧;
刚用两个图片控件试了,点击只会弹出当前图片的大小;
  • 打赏
  • 举报
回复
完善下

<script type="text/javascript">
function getcontent(ss){
debugger;
var parentdiv = ss.parentNode;
var vv = parentdiv.childNodes;
var content='';
for(var i =0;i<vv.length;i++){
if(vv[i].tagName=="INPUT"){
content = vv[i].value;
}
}
alert(content);
}
</script>
<div>
<button onClick="getcontent(this)">按钮1</button>
<input value="11" />
</div>
<div>
<button onClick="getcontent(this)">按钮2</button>
<input value="22" />
</div> <div>
<button onClick="getcontent(this)">按钮3</button>
<input value="33" />
</div> <div>
<button onClick="getcontent(this)">按钮4</button>
<input value="44" />
</div> <div>
<button onClick="getcontent(this)">按钮5</button>
<input value="55" />
</div>
  • 打赏
  • 举报
回复
还有种思路

<script type="text/javascript">
function getcontent(ss){
debugger;
alert(ss.textContent);
}
</script>

<button onClick="getcontent(this)">按钮1</button>
<button onClick="getcontent(this)">按钮2</button>
<button onClick="getcontent(this)">按钮3</button>
<button onClick="getcontent(this)">按钮4</button>
<button onClick="getcontent(this)">按钮5</button>


LZ可以打个断点看看
凡尘向天 2020-04-07
  • 打赏
  • 举报
回复
如果是这个效果的化 ,你需要做3 步 处理(我这个还是 v-for 里面) 1.初始化,绑定好控制 按钮显示隐藏的值 getAllMessages(){ getAllMessages().then(res=>{ for(let i=0;i<res.data.messageBoardList.length;i++){ this.$set(res.data.messageBoardList[i], 'isEdit', false) this.$set(res.data.messageBoardList[i], 'showRelPlayBtn', true) this.$set(res.data.messageBoardList[i], 'DelRelPlayBtn', true) this.$set(res.data.messageBoardList[i], 'index', i) } this.currentTotal = res.data.messageBoardList.length this.messageDates = res.data.messageBoardList.slice((this.currentPage-1)*this.pageSize,this.currentPage*this.pageSize) }) }, 2.在 元素上绑定好 属性值 和对应的 点击时间监听 <el-card class="box-card" shadow="hover" v-for="messageDate in messageDates" :key="messageDate.pk_MessageBoard"> <el-avatar>{{messageDate.author}}</el-avatar> <div class="messageContent">{{messageDate.messageContent}}</div> <div class="commitTime"><i class="el-icon-time"></i>{{messageDate.ts}}</div> <el-button class="delMessage" v-if="isLogin&&!messageDate.DelRelPlayBtn" @click="showDelBtn(messageDate)" type="primary" icon="el-icon-delete ">取消</el-button> <el-button class="delMessage" v-if="isLogin&&messageDate.DelRelPlayBtn" @click="DelMessage(messageDate)" type="primary" icon="el-icon-delete ">删除</el-button> <el-button class="answerMessage" v-if="isLogin&&messageDate.showRelPlayBtn" @click="showReplay(messageDate)" type="primary" icon="el-icon-chat-line-round">{{messageDate.status===0?'回复':'修改回复'}}</el-button> <el-button :loading="ReplayBtnLoading" class="answerMessage" v-if="isLogin&&!messageDate.showRelPlayBtn" @click="replyMessage(messageDate)" icon="el-icon-chat-line-round" type="primary">确定</el-button> <el-collapse v-show="messageDate.status" :v-model="activeNames" > <el-collapse-item title="无心的回复:" name="1"> <div>{{messageDate.replyContent}}</div> </el-collapse-item> </el-collapse> <el-input v-if="isLogin&&messageDate.isEdit" type="textarea" :rows="1" class="replyInput" v-model="messageDate.replyContent" placeholder="请输入要回复复的内容"></el-input> </el-card> 3.在点击时间中 对 数据显示按钮的属性进行 相应的处理 showReplay(messageDate){ this.$set(messageDate, 'isEdit', true) this.$set(messageDate, 'showRelPlayBtn', false) this.$set(messageDate, 'DelRelPlayBtn', false) this.$set(messageDate, 'replyContent', '') }, showDelBtn(messageDate){ this.$set(messageDate, 'isEdit', false) this.$set(messageDate, 'showRelPlayBtn',true ) this.$set(messageDate, 'DelRelPlayBtn', true) this.$set(messageDate, 'replyContent', '') }, 4. 我这里还设计到了请求的回调函数 // 回复信息 replyMessage(messageDate){ this.ReplayBtnLoading = true if(!messageDate.replyContent){ this.$message({ message: '留言内容不能为空', type: 'error' }) this.ReplayBtnLoading = false }else{ replayMessage({pk_MessageBoard: messageDate.pk_MessageBoard,replyContent:messageDate.replyContent,status:1}).then(res=>{ this.$set(this.messageDates[messageDate.index], 'isEdit', false) this.$set(this.messageDates[messageDate.index], 'showRelPlayBtn', true) this.$set(this.messageDates[messageDate.index], 'DelRelPlayBtn', true) this.$set(this.messageDates[messageDate.index], 'replyContent', messageDate.replyContent) this.$set(this.messageDates[messageDate.index], 'status',1) this.ReplayBtnLoading = false }) } } //删除回复 DelMessage(messageDate){ this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { deleteMessage({pk_MessageBoard:messageDate.pk_MessageBoard}).then(res=>{ this.$message({type: 'success', message: '删除成功!'}); this.messageDates.splice(messageDate.index, 1) for(let i=0;i<this.messageDates.length;i++){ this.$set(this.messageDates[i], 'index', i) } }) }) 只是给你个思路,你 可以根据步骤理解我怎么处理的 ,反正最后的效果贴出来 ,如果是你要的效果,你可以尝试去 按照我的思路去做对应的处理,(自己找到正确的思路,有个例给你,自己对应的修改改造的能力应该有吧)
_念_ 2020-04-07
  • 打赏
  • 举报
回复
em。。。你可以考虑分不同的class或者id。如果不能的话,那你就拿你的按钮文本做判断被
$(".favour").click(function(){if($(this).text() == "收藏") {//...干啥}})
huangfuyk 2020-04-06
  • 打赏
  • 举报
回复
或者点谁给谁加这个class,点下一个清楚其他
??Jerry? 2020-04-06
  • 打赏
  • 举报
回复
给谁加class的话也需要用选择器去选择一个,好像也实现不了
??Jerry? 2020-04-06
  • 打赏
  • 举报
回复
用body的那个方法也不行,还是不能实现
howcoder 2020-04-04
  • 打赏
  • 举报
回复
你用jquery的话,可以这么写$(".favour").click(function(){$(this).事件...})
jio可 2020-04-04
  • 打赏
  • 举报
回复
用代理,你这个应该是动态生成的。

$('body').on('click', '.favour', function(){
  console.log($(this))
})
body可以换成父级dom
??Jerry? 2020-04-04
  • 打赏
  • 举报
回复
您看是这样写不,我这样写的话还是不行

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧