87,996
社区成员
发帖
与我相关
我的任务
分享

<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>
如果是这个效果的化 ,你需要做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)
}
})
})
只是给你个思路,你 可以根据步骤理解我怎么处理的 ,反正最后的效果贴出来 ,如果是你要的效果,你可以尝试去 按照我的思路去做对应的处理,(自己找到正确的思路,有个例给你,自己对应的修改改造的能力应该有吧)$(".favour").click(function(){if($(this).text() == "收藏") {//...干啥}})
$('body').on('click', '.favour', function(){
console.log($(this))
})
body可以换成父级dom