2016-10-13 2 views
-1

Я пытаюсь внести изменения в текст ярлыка. Но в качестве id я не могу понять, что мне не хватает, поскольку он не меняет текст с английского на испанский. Может ли кто-нибудь помочь с этим?Изменить текст ярлыка с помощью javascript без идентификатора

<td width="125"> 
    <span class='Normal'> 
     <span class="FormText"> 
      <label for='txt4506'>First Name:</label> 
     </span> 
     <span class='required'>*</span> 
    </span> 
</td> 

Я хотел изменить этот способ.

$(document).ready(function() { 

      var tds = document.querySelectorAll('td'); 
      [].forEach.call(tds, function(td) { 
      if (td.textContent.trim() == 'First Name:') 
       { 
       td.textContent = 'Nome:'; 
       } 
      }); 
    }); 
+0

Вы, вероятно, следует установить содержание _label_ вместо '' . Td предназначен только для макета, это ярлык, который является значимым элементом. (и ... используя таблицы для макета?) И вы можете объединиться в один диапазон, который имеет оба класса, как '' –

ответ

1

Debugging 101: Посмотрите на значение, которое вы пытаетесь соответствовать

console.log(td.textContent.trim()); 

дает:

First Name: 

     * 

trim() только удаляет конечные и ведущие пробелы.


Target ярлык вместо этого, и использовать регулярные выражения, чтобы соответствовать немного вы заботитесь о:

$(document).ready(function() { 
 

 
    var tds = document.querySelectorAll('label'); 
 
    [].forEach.call(tds, function(td) { 
 
    td.textContent = td.textContent.replace(/First Name/, "Nome"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td width="125"> 
 
     <span class='Normal'> 
 
     <span class="FormText"> 
 
      <label for='txt4506'>First Name:</label> 
 
     </span> 
 
     <span class='required'>*</span> 
 
     </span> 
 
    </td> 
 
    </tr> 
 
</table>

-3

Я думаю, вы пропустили двоеточие в вашей, если заявление , Попытка:

 if (td.textContent.trim() == 'First Name:') 
-3

Вы должны выбрать, что уникально. Это то, что каждый делает при выборе элемента DOM (не так ли?)). Так что это:

var elem = document.querySelector("label[for='txt4506']"); 
elem.innerHTML = "some text"; 
+0

Это не сработает, так как существует много разных меток, которые использует тот же для. – user1413

+0

Тогда вы неправильно используете метку метки. Что касается одной формы, для каждого элемента формы должен быть уникальный атрибут name. Метка задается для определенного элемента формы, например ввода или textarea, поэтому для формы всегда будут уникальные метки. Таким образом, вы можете получить свой ярлык в соответствии с приведенным выше ответом. Иначе вы не должны использовать ярлык точно так же, он имеет очень специфическую цель. Как щелчок по метке автоматически нажимает на флажок или переключатель. –

-2
//A much understandable answer!! 


<td width="125"> 
     <span class='Normal'> 
      <span class="FormText"> 
       <label for='txt4506'>First Name:</label> 
      </span> 
      <span class='required'>*</span> 
     </span> 
    </td> 



    <script> 
     $(document).ready(function() { 

      var tds=$('span>label'); 
      for(var i=0; i<tds.length; i++){ 
       if($(tds[i]).text().match(/\bFirst Name\b/)){ 
        console.log($(tds[i]).text()+' is matched!'); 

        //now do what u want... 
        $(tds[i]).text('New text') 
       } 
      } 

     }); 
    </script> 
Смежные вопросы