可以将值从HTML传递给javascript吗?

时间:2014-07-19 15:25:23

标签: javascript html

我已搜索过但我并不真正理解与此问题相关的答案,而且它们都与JSP有关,所以我不确定它是否适用于我的用法。

我在页面上有一个评论列表,当用户点击"回复"执行javascript代码,但正在运行的javascript函数需要知道它将要处理哪个注释才能将回复表单插入正确的div中。我有关于在html代码中处理哪个注释的信息,但我需要能够在外部JS文件中访问此信息。

有没有办法将这些信息从html发送到javascript?

6 个答案:

答案 0 :(得分:1)

[更新]

您可以使用Jquery的数据属性

查看示例: http://jsfiddle.net/9AJUJ/2/

HTML

<div id="div1"></div>
<button class="mydiv" data-info="1" >button 1</button>
<div id="div2"></div>
<button class="mydiv" data-info="2" >button 2</button>

JS

//when document is load
$(function(){
    $(".mydiv").click(function(){
        $("#div" + $(this).data('info')).append('hello');
    });
})

答案 1 :(得分:0)

每个回复按钮的ID是否与评论ID相匹配?这将允许您知道按下了哪个按钮(this.id或this.name)并且对应于相关的注释字段。

您的输入将是

<input type="text" id="comments1">

,你的按钮就是

<button type="button" id="button1">Click Me!</button>

在你的按钮js你可以做类似的事情

var buttonID = this.id;
var commentID = 'comments' + buttonID.substring(6);
var commentObj = document.getElementById(commentID);

答案 2 :(得分:0)

假设这是您的HTML代码:

<article>
    <header>
        Posted by XYZ
    </header>
    <p>
        This is a comment...
    </p>
    <footer>
        <button type="button">
            Reply
        </buttuon>
    </footer>
</article>

这里是JQuery代码:

$(function() {
    $('article>footer>button[type="button"]').click(function(){
        $(this).parent().parent().append(/**  HERE IS WHAT YOU APPEND  **/);
    });
});

答案 3 :(得分:0)

您需要编辑回复按钮的标记。

<button class="reply-button" data-commentid="42">Reply</button>
                        <!-- ^ Add this attribute -->

在您的事件监听器中:

var commentId = this.dataset.commentid;

答案 4 :(得分:-1)

我做了什么(所以我不知道这是否是正确的方法),我是通过php类创建我的html代码并给每个div提供和id,如“div number”+ “回答”。

所以我的网页htmml看起来像是:

<div id="0answers"> 
    <h1 id="0title"> </h1>
    <p id="0p"> </p>
</div>

<div id="1answers"> 
    <h1 id="1title"> </h1>
    <p id="1p"> </p>
</div>

<div id="2answers"> 
    <h1 id="2title"> </h1>
    <p id="2p"> </p>
</div>

当有人点击div n°3时,您需要的所有信息都可以修改标题n°5。

那需要吗?

答案 5 :(得分:-1)

因此...

var i = 0;
var button = document.getElementById(i + 'button');

while(button){
    var p = document.getElementById(i + 'p');
    // and do what you want
    ++i;
    var button = document.getElementById(i + 'button');
}