2

我有一个动态创建的 HTML 字符串(表格行)。该字符串中的行数可以大于 1。

string myHtml = "
            <tr>
               <td class="text-left">
                  <label class="label-none">a.docx</label>
               </td>
               <td>
                  <label class="label-none">Manuscript </label>
               </td>
               <td>
                   <input class="del-file-cb" file-id="71" type="checkbox" />
               </td>
            </tr>" 
            etc...

在将其插入到 DOM 元素(表)之前,我想检查它内部是否存在具有特定file-id属性值的复选框输入。如果是这样,我想将text第一个label在放置找到的复选框的行中)更改为 eg lorem,并将第二个label更改text为 eg ipsum。怎么做 ?

编辑

这里还有一些有用的信息stackoverflow.com/questions/704679/parse-html-string-with-jquery

4

2 回答 2

9
var mYdomelement = $('
            <tr>
               <td class="text-left">
                  <label class="label-none">a.docx</label>
               </td>
               <td>
                  <label class="label-none">Manuscript </label>
               </td>
               <td>
                   <input class="del-file-cb" file-id="71" type="checkbox" />
               </td>
            </tr>');

if(mYdomelement.find(":checkbox").attr("file-id") == "Yourvalue"){
   $("label:first-child", mYdomelement).text('lorem');
   $("label:nth-child(2)", mYdomelement).text('ipsum');
}

这是工作演示

于 2012-08-17T10:51:31.033 回答
-1

你可以这样做:

if($(#elementId + ' input[file-id|="YOUR_VALUE_HERE"]').length > 0)
{
    $(this).ancestors().eq(2).find('label').eq(0).val(FIRST_LABEL_VALUE_HERE);
    $(this).ancestors().eq(2).find('label').eq(0).val(SECOND_LABEL_VALUE_HERE);
}
于 2012-08-17T11:09:32.210 回答