使用jquery重复函数每个名为“”的id

时间:2010-08-09 04:08:14

标签: jquery sql html

好的我有这个功能它的功能是获取id时间,用户,标题和正文的值。

插入sql的函数。

function getblogpost() {

    var date = $('#time').text();
    var user = $('#user').text();
    var title = $('#title').text();
    var textbody = $('#bodytext').text();
    var postid = $('#pid').text();
    dbsql.transaction(
        function(transaction) {
            transaction.executeSql(
                'INSERT INTO blogpost (postid, date, user, title, textbody) VALUES (?, ?, ?, ?, ?);', 
                [postid, date, user, title, textbody], 
                function(){

                }, 
                errorHandler
            );
        }
    );

    return false;

}

这就是上述功能可以使用的html。

<div id="main">
<div id="time">some text..</div>
<div id="user">some text..</div>
<div id="title">some text..</div>
<div id="bodytext">some text..</div>
<div id="pid">some text..</div>
</div>

<div id="main">
<div id="time">some text..</div>
<div id="user">some text..</div>
<div id="title">some text..</div>
<div id="bodytext">some text..</div>
<div id="pid">some text..</div>
</div>

<div id="main">
<div id="time">some text..</div>
<div id="user">some text..</div>
<div id="title">some text..</div>
<div id="bodytext">some text..</div>
<div id="pid">some text..</div>
</div>

我遇到的问题是我不知道如何为每个名为main的div重复一个函数。现在它只对第一个主要div进行,但现在转移到下一个主要div。

这可能是最好的方法吗?

3 个答案:

答案 0 :(得分:2)

首先,一个id不能超过1个元素。你需要使用类。

html可能如下所示:

<div class="main">
  <div class="time">some text..</div>
  <div class="user">some text..</div>
  <div class="title">some text..</div>
  <div class="bodytext">some text..</div>
  <div class="pid">some text..</div>
</div>

和这样的代码:

 function getblogpost(div) {

    var date = $(div).find('.time').text();
    var user = $(div).find('.user').text();
    var title = $(div).find('.title').text();
    var textbody = $(div).find('.bodytext').text();
    var postid = $(div).find('.pid').text();
    dbsql.transaction(
        function(transaction) {
            transaction.executeSql(
                'INSERT INTO blogpost (postid, date, user, title, textbody) VALUES (?, ?, ?, ?, ?);', 
                [postid, date, user, title, textbody], 
                function(){

                }, 
                errorHandler
            );
        }
    );

    return false;

}

然后这样称呼:

$('.main').each(function(){ 
  getblogpost(this);
});

答案 1 :(得分:0)

使用类。而不是id。

$('.main').each(function(){ 
   //do something with $(this)
});

答案 2 :(得分:-1)

你不能像这样复制id:它会使你的HTML文档无效,除了问题之外别无他法。

您需要使用迭代。为每个div id main1main2等命名...然后您可以收集所需的所有数据。